我正在使用signalR將消息推送到服務器並向下推送到特定客戶端。以線程安全的方式創建新窗口
當我發送一條消息時,接收客戶端發送一個來自我的signalR服務器的ReceiveMessage函數調用,該服務器映射到我的應用中的靜態類函數。靜態類然後試圖做new Chat()
(我的消息傳遞窗口類)在接收端打開消息窗口。
這將引發calling thread must be STA, because many UI components require this.
我以前與代表工作簡單表單元素(如改變文本框),但我不明白如何應用,在這種情況下。當我讀到Invoke
時,它被稱爲某種形式的對象,這在我的情況中不存在?
TLDR;我如何創建和靜態類函數調用
請注意,您應該瞭解BeginInvoke()與Invoke()方法之間的區別 - 前者將在另一個線程上異步執行操作,而後者將同步執行操作。調用調用是因爲它們是同步的,在某些情況下可能會導致死鎖,所以只能在適當的時候使用。請參閱http://stackoverflow.com/questions/229554/whats-the-difference-between-invoke-and-begininvoke – CrimsonX 2012-07-30 18:01:02
+1注意事項,要點。 – SynerCoder 2012-07-30 19:01:30