我试图在其他测试运行时在后台获取数据到文本文件 -
public void main()
{
GetData()
...Starting tests.....
}
public async Task GetData()
{
await Task.Run(()=>
{
string path = "" + ResultsPath + "\\Telemes.txt";
File.WriteAllText( Path , string.Join("," , Meas().Keys) + "\r\n");
while(true)
{
File.AppendAllText(path , string.Join(",", Meas().Values));
if(tokenSource.IsCancellationRequested)
{
break;
}
}});
}
将它作为同步任务运行正常并获取我需要的所有数据。 以这种方式调用它根本不会创建任何文本文件,但测试结果很好。
我猜我没有正确地调用任务。错误在哪里?
答案 0 :(得分:0)
您需要等待主要方法中的任务。如下所示:
public async void main()
{
Task getDataTask = GetData();
...Starting tests.....
//Do something that is not dependent upon GetData()
await getDataTask;
//Processing completed
Console.Write("File GetData - complete");
}
注意:为了能够使用await,你的main()方法也应该是异步的!