从被调用的线程获取信息回到主线程?

Joe*_*Gfd 2 c# parameters multithreading

我在主线程中有一个"字符串"和一个"StreamReader".我想将这些传递给一个将流读取器读入字符串的线程.我希望在主线程中更改该字符串.我的问题是我该怎么做?

附加信息:我有具体的原因,为什么我想要解决这个问题,所以请坚持规范.另外,我不能使用TPL,因为我无法获得框架4.0 ...再次出于特定原因.

jas*_*son 7

所以你用一个string和一个StreamReader属性创建一个类.您使用该类的实例传递给其他线程ParameterizedThreadStart.你有其他的线程通过写入string你班级的那个实例上的属性来填充毛茛.

线程完成后,您string的类实例上的属性将被填满.好极了.

所以像

 class Foo {
     public string Bar { get; set; }
 }
Run Code Online (Sandbox Code Playgroud)

然后:

 Foo foo = new Foo();
 var thread = new Thread(o => { Foo f = (Foo)o; f.Bar = "FillMeUpButterCup"; });
 thread.Start(foo);
 thread.Join();
 Console.WriteLine(foo);
Run Code Online (Sandbox Code Playgroud)

哇!

我离开了,StreamReader但现在你明白了.