【发布时间】:2014-09-13 11:43:42
【问题描述】:
所以我试图用键事件来操作线程,我设法让它们通过按下键 E 和 R(两个线程)开始,但我无法通过重新释放键来阻止它们,keyup 事件由于某种原因不起作用.. . (启动后,停止我想在需要时重新启动它们......所以没有计时器......)
C# WINDOWS APPLICATION 代码:(我正在使用的方法)
private void Yawspeed_KeyDown(object sender, KeyEventArgs e)
{
Thread yawspeedRightThread = new Thread(new ThreadStart(YawspeedRightThread));
Thread yawspeedLeftThread = new Thread(new ThreadStart(YawspeedLeftThread));
if (e.KeyCode == Keys.E)
{
yawspeedRightThread.Start();
}
if (e.KeyCode == Keys.R)
{
yawspeedLeftThread.Start();
}
}
((方法会是这样的吗?:
private void Yawspeed_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.E)
{
yawspeedRightThread.Abort();
}
if (e.KeyCode == Keys.R)
{
yawspeedLeftThread.Abort();
}
}
(结束...)
private void Yawspeed_Load(object sender, EventArgs e)
{
}
#region Thread Functions
/// <summary>
/// This thread will move your cursor
/// </summary>
public static void YawspeedRightThread()
{
while (true)
...(其余代码、线程本身、函数...)
【问题讨论】:
-
您能否更清楚地描述您打算做什么?好像有点不寻常……
-
你已经问过这个问题了。看起来你删除了前一个,也破坏了 SO 用户添加的 cmets。这对任何人都没有帮助,请不要这样做。
-
msdn.microsoft.com/en-us/library/…Control.KeyUp 事件“在控件有焦点时释放键时发生。”,它仍然有焦点吗?
标签: c# multithreading winforms events keydown