Suspend 过时了 我不知道还有其他方法实现??
13 个解决方案
#1
可以用事件通知:
using System;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Thread th = new Thread(YourThread);
th.Start();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (textBox1.Text.Length >= 4)
{
detailCollectedEvent.Set(); // 当textBox1的文本超过4位,发一个通知
}
}
AutoResetEvent detailCollectedEvent = new AutoResetEvent(false);
void YourThread()
{
MessageBox.Show("input you bank account details into the textbox");
detailCollectedEvent.WaitOne(); // 等候通知
MessageBox.Show("we will keep the secret.");
}
}
}
#2
事件通知是最佳方案,以前我都用一个while(xxx)来等待,后来发现会有一些问题.
#3
这个方案真的不错呀!
#4
1楼即正解,我们都等着接分呢。
#5
学习一下
#6
学习一下
#7
1楼方法不错...学习..
#8
结帖率25%。。。。= =、
#9
看到标题本想来回复,打开后发现gomoku回复是很标准了。支持。
#10
学习了这个办法真不错。
#11
不错,搜到了很多解释,不过楼主代码简单明了清晰。谢了!
#12
学习了,,mark
#13
学习一下。
#1
可以用事件通知:
using System;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Thread th = new Thread(YourThread);
th.Start();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (textBox1.Text.Length >= 4)
{
detailCollectedEvent.Set(); // 当textBox1的文本超过4位,发一个通知
}
}
AutoResetEvent detailCollectedEvent = new AutoResetEvent(false);
void YourThread()
{
MessageBox.Show("input you bank account details into the textbox");
detailCollectedEvent.WaitOne(); // 等候通知
MessageBox.Show("we will keep the secret.");
}
}
}
#2
事件通知是最佳方案,以前我都用一个while(xxx)来等待,后来发现会有一些问题.
#3
这个方案真的不错呀!
#4
1楼即正解,我们都等着接分呢。
#5
学习一下
#6
学习一下
#7
1楼方法不错...学习..
#8
结帖率25%。。。。= =、
#9
看到标题本想来回复,打开后发现gomoku回复是很标准了。支持。
#10
学习了这个办法真不错。
#11
不错,搜到了很多解释,不过楼主代码简单明了清晰。谢了!
#12
学习了,,mark
#13
学习一下。