Multithreading System.Threading.QueueUserWorkItemCallback相关启动崩溃

Multithreading System.Threading.QueueUserWorkItemCallback相关启动崩溃,multithreading,xamarin,xamarin.android,threadpool,Multithreading,Xamarin,Xamarin.android,Threadpool,在我的应用程序中,在LG G3 D855上运行时,我在启动时出现此错误,通常在我的应用程序有一段时间没有启动时发生,总是在崩溃后重新启动,效果良好: E/linker ( 2105): readlink('/proc/self/fd/28') failed: Permission denied [fd=28] E/linker ( 2105): warning: unable to get realpath for the library "/vendor/lib/egl/eglsubAnd

在我的应用程序中,在LG G3 D855上运行时,我在启动时出现此错误,通常在我的应用程序有一段时间没有启动时发生,总是在崩溃后重新启动,效果良好:

E/linker  ( 2105): readlink('/proc/self/fd/28') failed: Permission denied [fd=28]
E/linker  ( 2105): warning: unable to get realpath for the library "/vendor/lib/egl/eglsubAndroid.so". Will use given name.
E/mono    ( 2105): 
E/mono    ( 2105): Unhandled Exception:
E/mono    ( 2105): System.NullReferenceException: Object reference not set to an instance of an object
E/mono    ( 2105):   at Dictionary.Fragments.SearchFragment+<>c__DisplayClass13_0.<PerformSearch>b__0 (System.Object x) [0x00050] in <88db5ed5788f4131a4894bb5620511e9>:0 
E/mono    ( 2105):   at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context (System.Object state) [0x0000e] in <8552b98493c447d5a7a1f07bdaff39bb>:0 
E/mono    ( 2105):   at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x0008d] in <8552b98493c447d5a7a1f07bdaff39bb>:0 
E/mono    ( 2105):   at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <8552b98493c447d5a7a1f07bdaff39bb>:0 
E/mono    ( 2105):   at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () [0x0002a] in <8552b98493c447d5a7a1f07bdaff39bb>:0 
E/mono    ( 2105):   at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00096] in <8552b98493c447d5a7a1f07bdaff39bb>:0 
E/mono    ( 2105):   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () [0x00000] in <8552b98493c447d5a7a1f07bdaff39bb>:0
请让我知道这是什么,这让我很恼火。这也发生在我正在制作的另一个应用程序中,它使用相同类型的
ThreadPool.QueueUserWorkItem()

我的安装:

Microsoft Visual Studio Professional 2015版本14.0.25431.01更新 3 Microsoft.NET Framework版本4.6.01586

安装版本:Professional

Microsoft Visual Studio应用程序工具2015
00322-40000-00000-AA309 Microsoft Visual Studio应用程序工具 2015年

Visual Basic 2015 00322-40000-00000-AA309 Microsoft Visual Basic 2015年

Visual C#2015 00322-40000-00000-AA309 Microsoft Visual C#2015

Visual C++ 2015 032 32~400 0 - 00000 AA309微软Visual C++ 2015<P> Visual Studio应用程序洞察工具包7.17.00119.9 Visual Studio应用程序洞察工具

ASP.NET和Web工具2015.1 14.1.21111.0 ASP.NET和Web工具 2015.1

ASP.NET Web框架和工具2012.2 4.1.41102.0获取更多信息 信息,访问

ASP.NET Web框架和工具2013 5.2.40314.0以获取更多信息 信息,访问

Azure应用程序服务工具v2.8.1 14.0.11123.0 Azure应用程序服务工具 v2.8.1

Merq提供的命令总线、事件流和异步管理器 ICommandBus、IEventStream和IAsyncManager MEF服务,用于 耦合的VisualStudio扩展组件和通信 整合

Common Azure Tools 1.8提供了供Azure使用的通用服务 移动服务和Microsoft Azure工具

缩进导轨15缩进导轨

在每个缩进级别添加视觉辅助线

JavaScript语言服务2.0 JavaScript语言服务

JavaScript项目系统2.0 JavaScript项目系统

JetBrains ReSharper Ultimate 2016.2.2建造106.0.20160913.91321 适用于Microsoft Visual Studio的JetBrains ReSharper终极软件包。对于 有关ReSharper Ultimate的更多信息,请访问 . 版权所有©2017 JetBrains,Inc

Microsoft.NET核心工具(预览2)14.1.21111.0 Microsoft.NET 核心工具(预览2)

Microsoft Azure移动服务工具1.4 Microsoft Azure Mobile 服务工具

Visual Studio中的NuGet Package Manager 3.5.0 NuGet Package Manager。 有关NuGet的更多信息,请访问

抢占式分析可视化工具1.2 Microsoft Visual Studio 扩展以可视化来自先发制人的汇总摘要 分析产品

SQL Server Analysis Services 13.0.1605.88 Microsoft SQL Server Analysis Services Designer版本13.0.1605.88

SQL Server数据工具14.0.60629.0 Microsoft SQL Server数据工具

SQL Server集成服务Microsoft SQL Server集成 服务设计器版本13.0.1601.5

SQL Server Reporting Services 13.0.1605.88 Microsoft SQL Server Reporting Services Designers版本13.0.1605.88

TypeScript 1.8.36.0 Visual Studio的TypeScript工具

Visual Studio Tools for Unity 2.8.0.0 Visual Studio Tools for Unity

Windows Installer XML工具集3.10.2.2516 Windows Installer XML 工具集3.3.2.2516版权(C)OutTrand基金会。全部的 版权所有

Xamarin 4.2.2.11(00fa5cc)Visual Studio扩展以启用 针对Xamarin.iOS和Xamarin.Android的开发

Android 7.0.2.42(501e63c)Visual Studio扩展以启用 开发Xamarin.Android

Xamarin.iOS 10.3.1.8(7beaef4)Visual Studio扩展以启用 Xamarin.iOS的开发


这在我的两个应用程序中都得到了修复,没有使用
ThreadPool.QueueUserWorkItem
,而是使用TPL
Task.Factory.StartNew()
来做同样的事情。我没有找到
线程池.QueueUserWorkItem
失败的原因,Xamarin没有记录对我的错误报告的响应。

您能在该方法中逐步检查代码以尝试查看哪个对象为空吗?我的第一个想法是_transAdapter,因为您没有对它进行空检查。也许是因为某种原因,_transAdapter正在被处理,并且在恢复应用程序时没有被重新创建?@jgoldberger问题是,它在实际设备启动时发生,间歇性地,我无法调试它。也许尝试对_transAdapter进行空值检查,看看这是否是问题所在:
\u transAdapter?.Update(translations)
如果(_transAdapter!=null)_transAdapter.Update(翻译)
private void PerformSearch(string input) {
  ThreadPool.QueueUserWorkItem( x => {
    if ( _tranService == null )
      _tranService = new TranslationService();

    var translations = _tranService.Translate( input );
    _transAdapter.Update( translations );
    Activity.RunOnUiThread( () => _transAdapter.NotifyDataSetChanged() );
  } );
}