2013-06-14 6 views
5

Ich verwende TweetSharp, um Tweets aus meiner C# -Anwendung zu senden. Meine Anwendung ist ein auf XNA basierendes Spiel und am Ende jedes Spiels werden die Punkte automatisch an einen Twitter-Account gesendet.Das Posten eines Tweets mit TweetSharp in C# nimmt viel Zeit in Anspruch

Der Tweet wird jedes Mal ohne Fehler gepostet, aber jedes Mal, wenn es das tut, friert das Spiel für etwa 1,5 Sekunden ein.

Ich verwende es so, den Code zu schreiben:

twitterService.SendTweet(new SendTweetOptions { Status = status }); 

Was die Lösung sein könnte, dass die Buchungszeit zu reduzieren?

+1

Sie wahrscheinlich kann es nicht beschleunigen, aber man konnte es in einem Hintergrundarbeiter (http setzen: // msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker(v=vs.95).aspx), damit das Programm weiterläuft, während es ausgeführt wird. –

+0

Vielen Dank für die schnelle Antwort! Ich habe eine einfachere Funktion von XNA für Multithreading verwendet und es funktioniert wie ein Zauber! – thegameg

Antwort

4

Wenn Sie .NET 4.5 laufen etwas in einem neuen Thread verwenden Sie das tun

// this is a better way to run something in the background 
// this queues up a task on a background threadpool 
await Task.Run(() => { 
    twitterService.SendTweet(new SendTweetOptions { Status = status }); 
}); 

// this method of running a task in the background creates unnecessary overhead 
Task.Factory.StartNew(() => { 
    twitterService.SendTweet(new SendTweetOptions { Status = status }); 
});