我可以提出一個靜態事件線程安全嗎? (我不完全確定這意味着什麼)。 整個事情是音頻應用程序的一部分,所以我至少有音頻處理線程和UI線程。如何在C#中引發一個靜態事件線程安全?
的RaisePrintEvent會從非託管的C代碼,其處理音頻和其他消息調用。提升事件的調用可以從音頻處理線程和UI線程中發生。
public static event ProcessPrint Print = delegate {};
private static void RaisePrintEvent(string e)
{
Print(e);
}
我怎樣才能確保事件調用是同步的?或者可能只是在主線程中調用..
編輯:請在這裏閱讀a smart solution。
+1表示線程之間進行通信的隊列。 – spender
@spender沒有別的辦法,在那裏:) –
你認爲使用SynchronizationContext是正確的方法嗎? on可以設置一個Synchronization上下文,這個事件將在這個上下文中被調用。如果它是空的,只是沒有誠實地調用 – thalm