0

我正在研究 Xamarin 表单。在内容页面中,我想在单独的线程中编写一些代码,因为应用程序在某个随机间隔后冻结。

在我的代码中有 byte[] 到字符串方法的转换,如下所示

BitConverter.ToString(Data); 需要时间来执行,所以任何有解决方案的人请分享它。

提前致谢。

4

2 回答 2

0

通过以下方式使用线程池中基于任务的线程Task.Run

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

    Device.BeginInvokeOnMainThread(() =>
    {
        // back on ui thread, hide progress indicator, show some dialog, etc... 
    });
});
于 2017-08-31T07:19:28.460 回答
0

您可以将转换方法的返回类型设置为 Task 并使其异步。然后,您可以通过 Task.Run 使用 .NET 的多线程概念。例如:

转换器方法:

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

从您调用此方法的地方:

await Task.Run(Converter);

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

于 2017-08-31T13:47:24.163 回答