c# - Monotouch 中的 System.ComponentModel.BackgroundWorker - 正确用法?

标签 c# multithreading xamarin.ios

我正在使用 System.ComponentModel.BackgroundWorker 来执行一些运行时间更长的任务,这些任务最终会更新一些 UI 元素。

关于此的问题:

  • BackgroundWorker.RunWorkerCompleted 是在 UI 主线程上执行,还是在单独的线程中执行?或者问不同的问题:我是否必须将我的代码嵌入到 using(NSAutoReleasePool) 中,我是否必须像使用普通线程时那样 InvokeOnMainThread()?<
  • 我是否必须在 BackgroundWorker.DoWork 委托(delegate)中使用 NSAutoReleasePool

最佳答案

BackgroundComponentWorker 尚未调整为适用于 Android 的 MonoTouch 或 Mono,因此它不会对 UI 线程执行任何特殊操作。

引发的任何事件都不会在 UI 线程上引发,因此您需要手动将它们包装在 BeginInvokeOnMainThread 中。

关于c# - Monotouch 中的 System.ComponentModel.BackgroundWorker - 正确用法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7659843/

相关文章:

ios - 将UIView添加到ScrollView进行分页

c# - 按任何属性对列表进行排序的更好方法

c# - NUnit - 用于测试事务的单元测试用例

c# - 使用 Asp Net MVC 4,调试总是显示源与原始源不同

c# - 使用内部 JSON 构造函数在 AutoFixture 4.8.0 中创建公共(public)类型,并带有许多构造函数参数

java - 在对象上调用 setter 后安全发布 Java 对象

python - 如何从池中获取第一个完成的异步结果

multithreading - WinRT API 中是否有与 Android 处理程序等效的东西?

caching - Xamarin iOS 从 WKWebView 清除缓存

c# - MonoTouch NSClassFromString