如果sshClient.RunCommand是同步的,你没有办法在它执行的时候终止它。改写成异步试试看。
解决方案 »
- 关于c# select语句的,其中where后为参数!求指导!
- asp.net(C#)当前线程不在单线程单元中,因此无法实例化 ActiveX 控件“e6e0a751-541a-4855-9a8d-35eb7122c950”
- 列表框某一项怎么添加多个小图标?
- 从Sql Server2005导入数据至Excel文件时报"将截断字符串或二进制数据"错误!
- DATATIMEPICKER中能否禁用或者屏蔽早于当前日期的选择?
- 分类取数据库中的数据
- 日期格式问题
- 求一个正则表达式~
- 项目快完了,散分了
- 如何把一个dataset更新另一个access的表里
- wiform通信问题请教
- c# OracleParameter问题出在哪里?
// Main thread:
private static ManualResetEvent event = new ManualResetEvent(true); // boolean parameter whether to set the initial state to signaled.public void OnPauseClick(...) {
event.Reset();
}public void OnResumeClick(...) {
event.Set();
}// Worker thread
public void DoSth() {
while (true) {
// show some random text in a label control (btw. you have to invoke the action because you are not in the main thread)
event.WaitOne(); // waits for the signal to be set
}
}
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int i = 0;
private static ManualResetEvent manualEvent = new ManualResetEvent(true); // boolean parameter whether to set the initial state to signaled.
private void start_Click(object sender, EventArgs e)
{ ThreadPool.QueueUserWorkItem((state) =>
{
while (true)
{
MessageBox.Show((i++).ToString());
manualEvent.WaitOne();
}
}); } public void OnPauseClick()
{
manualEvent.Reset();
} public void OnResumeClick()
{
manualEvent.Set();
} private void resume_Click(object sender, EventArgs e)
{
OnResumeClick();
} private void pause_Click(object sender, EventArgs e)
{
OnPauseClick();
}
}
}