异步进程工作时从文本文件中读取

时间:2015-08-13 17:16:29

标签: c# .net async-await task iasyncresult

我有一个运行很长时间并写入日志文件的方法。它设置得像这样

      public class PSOHelper
      {

        public PSOHelper(string[] params)
        {
            //set up params here
        }  
        public async void RunApp(string runType)
        {
               //long running application that writes to a text file
        }
      }

然后在主程序中我这样调用这个方法:

 public async Task<bool> PreparePSOAndRunPSO()
    {
        string[] params;
        //code to fetch the parameters
        PSOHelper psoH = new PSOHelper (params)
        try
        {
            await Task.Run(() =>
            {
                psoH.RunApp(RunConfig.RunMode);
            });
            return true;
        }
        catch( Exception ex)
        {
            Helper.log.Error("exception starting PSO", ex);
            return false;

        }
    }

现在,在我的Main方法中,我想调用PreparePSOAndRunPSO,然后在while循环中读取正在写入RunApp的日志,直到PreparePSOAndRunPSO完成。我这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

有一件事是将'^0*方法更改为async void RunApp(string runType)

现在这样的事情应该有效。

async Task RunApp(string runType)