假设我有一个由x个未知字符组成的字符串.我怎么能得到char.13或char nr.X-14?
几天来,我一直试图弄清楚如何使用make console update text-box作为执行.我得出结论,线程对于同时运行表单和控制台进程是绝对必要的.进程本身是独立的程序,所以我使用标准输出来获取信息,如果我不需要它更新文本框作为其工作,它会很好,但问题是它只在执行过程后更新事实上,虽然我使用多线程.
是为运行进程并处理输出的函数创建委托的开始,以及我用于在线程和锁之间交换信息的字符串:
private static readonly object _locker = new object();
volatile string exchange = "";
delegate void CallDelegate(string filename);
Run Code Online (Sandbox Code Playgroud)
这是功能本身:
public void CallConsole(string filename)
{
Thread.CurrentThread.Name = "ProccessThread";
Thread.CurrentThread.IsBackground = false;
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.FileName = filename;
if (checkBox1.Checked)
p.StartInfo.CreateNoWindow = true;
string output;
p.Start();
while (!p.HasExited)
{
lock (_locker)
{
output = p.StandardError.ReadToEnd();
if (output.Length != 0)
{
exchange = output;
Thread.Sleep(100);
MessageBox.Show(output);
}
output …
Run Code Online (Sandbox Code Playgroud)