情况如下:A窗体加载时发生
1. 取得数据(这里用多线程的话)
2.执行后面的操作(前提是必须取得数据)问题:多线程的时候,在1里还在取数据中,但程序已经往下执行到2了(因为两个在不同线程里),因为没取到数据,所以程序出错因为取数据是共用的函数,都是用多线程的,像这样的问题,同志们是怎么处理的呢!
1. 取得数据(这里用多线程的话)
2.执行后面的操作(前提是必须取得数据)问题:多线程的时候,在1里还在取数据中,但程序已经往下执行到2了(因为两个在不同线程里),因为没取到数据,所以程序出错因为取数据是共用的函数,都是用多线程的,像这样的问题,同志们是怎么处理的呢!
或者
在线程里取到数据后,再调用后面的操作,如果后面的操作涉及到界面,记得使用委托或者Invoke
不是很明白1。因为取数据函数都是共用的,但取数据后的第2个要执行的东西只有加载窗体时才做,所有取数据后再调用后面要执行的不行吧
2。join听不懂,小菜来的,嘿嘿,能说详细点吗,老哥
class A
{
private AutoResetEvent allDone = new AutoResetEvent(false);
private void Getdate()
{
//获取数据
allDone.Set();
}
private void load()
{
getDate();
allDone.WaitOne();
//继续其他的操作
}
}
第一种方法
private void fun()
{
// 取数据
} private void FrmMain_Load(object sender, EventArgs e)
{
Thread t = new Thread(new ThreadStart(fun));
t.Start();
t.Join();
// 执行其他操作
}
第二种方法
private void fun()
{
// 取数据
// 执行其他操作
} private void FrmMain_Load(object sender, EventArgs e)
{
Thread t = new Thread(new ThreadStart(fun));
t.Start();
}