將其中一個嵌套在其他內部嗎?在過去,我有一個掛起/死鎖問題,我可以在做代碼的頂層代碼塊時重現,當我將其更改爲底部代碼塊時,我無法重現......我真的不明白它在時間,而我仍然沒有。我應該知道關於鎖的& InvokeOnMainThread的組合嗎?我公司可提供約我在做什麼更多的細節,但是這是比任何事情的一般問題...在鎖內嵌套InvokeOnMainThread,或者反之亦然
比方說,我想「DoStuff」在後臺線程。我有一個從多個線程訪問的變量。
lock(stuff)
{
InvokeOnMainThread (delegate {
stuff.DoStuff();
});
}
備用
InvokeOnMainThread (delegate {
lock(stuff)
{
stuff.DoStuff();
}
});
新增信息:我有在後臺線程運行的連接管理器功能,iOS應用程序。連接管理器功能負責保持活動並管理異步網絡套接字連接。有很多情況下,我需要InvokeOnMainThread當做事情,否則我會得到以下錯誤「UIKit一致性錯誤:您正在調用UIKit方法,只能從UI線程調用。」
,如果你在後臺線程想DoStuff(),爲什麼你運行它在主線程上? – Jason
我試圖簡化一個潛在的複雜問題......也許這使得這個問題變得無法回答。看到上面添加的內容 – LampShade