【发布时间】:2014-11-06 16:55:12
【问题描述】:
我正在尝试为一个私人项目使用 Threads,我有一个问题,因为我认为这很容易回答。
是否可以在另一个线程中设置变量?
这是一个小代码示例,向您展示我正在尝试做的事情:
public class PartyClass
{
public boolean partytime = true;
public void MakeParty()
{
while(partytime)
Console.WriteLine("I'm making a party here");
Console.WriteLine("The party ended. Please leave now");
}
public void StopParty()
{
partytime = false;
}
}
public class MainThread
{
public static int Main(String[] args)
{
PartyClass party = new PartyClass();
Thread partyThread = new Thread(new ThreadStart(party.MakeParty()));
partyThread.Start();
while (!partyThread.IsAlive) ;
System.Threading.Thread.Sleep(5000);
// Now I want to somehow call the StopParty() Method
}
}
我不知道我正在尝试做的事情是否真的很愚蠢,但我认为这是以干净的方式停止“Partythread”的好方法。
这是可能的还是有更好的解决方案? 感谢您的想法。
(我没有测试代码 - 只是把它写出来)
【问题讨论】:
-
你的主线程正在等待第二个线程停止,并且第二个线程不会停止,直到主线程告诉它。它会以这种速度永远持续下去。
标签: c# .net multithreading network-programming threadpool