请教:
子线程中执行一段操作后就将一个变量设为100;主线程中当等到这个变量为100时立即执行某个操作。
如何实现这样的功能(不想用while语句,因那样太耗资源)?我认为其实质类似于控件事件--当某个事件发生时就执行规定的操作,但变量的值的变化如何做成事件呢?如果
不能用事件,又有别的什么方法?
子线程中执行一段操作后就将一个变量设为100;主线程中当等到这个变量为100时立即执行某个操作。
如何实现这样的功能(不想用while语句,因那样太耗资源)?我认为其实质类似于控件事件--当某个事件发生时就执行规定的操作,但变量的值的变化如何做成事件呢?如果
不能用事件,又有别的什么方法?
解决方案 »
- C#制作扫雷的一个难点,判断按钮周围的雷数
- C# WinForm TextBox 作为密码输入框时,如何禁止密码查看器获取密码 ?
- C#如何批量导入txt文件内容到sqlserver中的某一列?
- 请问这是什么加密方式?
- 如何禁止对类的提示?
- int space = t.IndexOf(' '); 这如何理解?单引号中为什么是空格?
- 关于重写ProcessCmdKey函数后带来的副作用
- 要做一个类似网络寻呼机的软件,那位大虾给点思路,
- 大家给客户做DEMO是怎么做的?
- 请问企业库的数据访问类库如何执行带参数的sql语句?
- C#关于窗体的最大化问题!!!!
- 为什么类作为参数传递给龄一个类的函数时,外部的改变会使之改变?
private void Form1_Load(object sender, EventArgs e)
{ System.Threading.Thread _MainTherad = new System.Threading.Thread(new System.Threading.ThreadStart(MainThread));
_MainTherad.Start();
} public void MainThread()
{
Sub _Sub = new Sub();
_Sub.End += new Sub.EndThread(Q);
System.Threading.Thread _SubTherad = new System.Threading.Thread(new System.Threading.ThreadStart(_Sub.SubThread)); _SubTherad.Start(); } void Q(string View)
{
MessageBox.Show(View);
} public class Sub
{
public delegate void EndThread(string View);
public event EndThread End;
public void SubThread()
{
for (int i = 0; i != 100; i++)
{ }
if (End != null) End("OK");
}
}
private int number;
public int Number
{
get{return number;}
set
{number=value;
if(value==100)
{
DoSomething();
}
}
}
delegate void Dchanged(object sender, int i);
class A
{
Dchanged OnValueChanged;
int i;
public int IntValue
{
get{return i;}
set{ if (i != value && OnValueChanged != null)
OnValueChanged(this, value);
i = value;
}
}
}
delegate void abc();class edf
{
public abc Dosomething = null;
private int b;
public int B
{
set
{
if(Dosomething != null && value==100)Dosomething();
}
}
}