J'écris un toast qui doit être thread-safe car il est utilisé pour signaler l'état de l'entrée socket asynchrone. J'ai essayé de le rendre sécuritaire pour les threads, mais les toasts sont toujours bloqués.Thread-safe Form.Show
public static void Show(string message) {
Toast toast = new Toast(message);
toast.ShowAction();
}
private delegate void InvokeCallback();
public void ShowAction() {
if (InvokeRequired) {
Invoke(new InvokeCallback(ShowAction));
}
else {
Show();
}
}
Je veux être en mesure de les afficher facilement comme une boîte de message, à savoir Toast.Show("Status changed");
. Toute aide serait grandement appréciée.
Vous pouvez exécuter, sur le même thread qui crée le formulaire, une boucle de message autour du formulaire. Faites simplement: Application.Run (forme); Notez que le formulaire est maintenant sous contrôle, vous avez donc besoin du formulaire pour se fermer lorsque cela est approprié. –
@lassevk: NON NON NON! Ne jamais démarrer une boucle de message sur un fil que vous ne démarrez pas. Cela pourrait avoir des conséquences désastreuses! –