首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在关闭进程之前等待任务结束?

如何在关闭进程之前等待任务结束?
EN

Stack Overflow用户
提问于 2020-06-02 22:36:27
回答 1查看 39关注 0票数 0

最近,我正在研究国际象棋,对于人工智能,我正在使用带有UCI协议的Stockfish。多亏了这两个链接( UCI Protocol:http://wbec-ridderkerk.nl/html/UCIProtocol.html和这篇文章:Using Stockfish Chess AI in Unity ),我已经取得了一些进展,但我有一个问题。

下面是我的代码:

代码语言:javascript
运行
AI代码解释
复制
        var p = new System.Diagnostics.Process();

        p.StartInfo.FileName = "C:/stockfish/stockfish-11-win/Windows/stockfish_20011801_32bit";

        p.StartInfo.UseShellExecute = false;
        p.StartInfo.RedirectStandardInput = true;
        p.StartInfo.RedirectStandardOutput = true;

        p.Start();



        StreamWriter myStreamWriter = p.StandardInput;
        myStreamWriter.WriteLine("position fen " + fen);
        myStreamWriter.WriteLine("go movetime 2000");
        myStreamWriter.Close();

        Thread.Sleep(2000);



        StreamReader reader = p.StandardOutput;
        String bestMoveInAlgebraicNotation = reader.ReadToEnd();
        reader.Close();


        p.Close();

        return bestMoveInAlgebraicNotation;

当我要求Stockfish使用以下代码进行评估时:myStreamWriter.WriteLine("go movetime 2000");

他这样做了,但当我要求进程关闭时,他立即停止:p.Close();

所以我想让processus一直等到任务完成,有没有什么办法呢?

谢谢你读我的文章,祝你有愉快的一天。

EN

回答 1

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62162474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档