将其中一个嵌套在其他内部吗?在过去,我有一个挂起/死锁问题,我可以在做代码的顶层代码块时重现,当我将其更改为底部代码块时,我无法重现......我真的不明白它在时间,而我仍然没有。我应该知道关于锁的& InvokeOnMainThread的组合吗?我公司可提供约我在做什么更多的细节,但是这是比任何事情的一般问题...在锁内嵌套InvokeOnMainThread,或者反之亦然
比方说,我想“DoStuff”在后台线程。我有一个从多个线程访问的变量。
lock(stuff)
{
InvokeOnMainThread (delegate {
stuff.DoStuff();
});
}
备用
InvokeOnMainThread (delegate {
lock(stuff)
{
stuff.DoStuff();
}
});
新增信息:我有在后台线程运行的连接管理器功能,iOS应用程序。连接管理器功能负责保持活动并管理异步网络套接字连接。有很多情况下,我需要InvokeOnMainThread当做事情,否则我会得到以下错误“UIKit一致性错误:您正在调用UIKit方法,只能从UI线程调用。”
,如果你在后台线程想DoStuff(),为什么你运行它在主线程上? – Jason
我试图简化一个潜在的复杂问题......也许这使得这个问题变得无法回答。看到上面添加的内容 – LampShade