2017-08-31 28 views
0

我正在使用Xamarin Forms。在内容页面中,我想在单独的线程中编写一些代码,因为应用程序在一些随机时间间隔后会冻结。Xamarin表单:如何从内容页面调用绑定服务?有没有办法在单独的线程中编写代码?

在我的代码有一个字节[]转化成字符串的方法,如下面

BitConverter.ToString(数据); 需要时间来执行,所以任何人都有决议,请分享它。

在此先感谢。

回答

0

通过Task.Run使用线程池中基于任务的线程:

await Task.Run(() => 
{ 
    // do some work.... 

    Device.BeginInvokeOnMainThread(() => 
    { 
     // back on ui thread, hide progress indicator, show some dialog, etc... 
    }); 
}); 
+0

其仍然冻结的应用程序..有没有任何解决方法 –

+0

@Sachinsalunkhe?不要“等待”任务的完成。删除'await'并将它变成火,并忘记后台任务,您将不得不在该任务的执行结束时提供一个回调,以便您知道它已完成... – SushiHangover

0

你可以让你的转换方法的返回类型为任务,并使其异步。然后,您可以使用Task.Run使用.NET的多线程概念。例如:

转换方法:

public async Task Converter() 
{ 
// your conversion code 
} 

从你调用这个方法的地方:

await Task.Run(Converter); 

调试时,您可以在线程窗口中看到该任务将在一个单独的线程中运行。调试时按ctrl + alt + H启用线程窗口。

相关问题