【发布时间】:2013-06-16 21:51:19
【问题描述】:
对不起,我的英语;我有线程问题: 我有一个 WinForm,里面有两个按钮(播放和暂停) 我希望当你按下 PLAY 按钮时,如果它创建了线程,思考并开始,并且 PAUSE 按钮暂停线程。 然后,如果线程暂停,按 PLAY 按钮可从中断处恢复线程。 像电子游戏一样...... 在 Java 中我成功地做了一些事情,
Runnable h = new MiHilo();
Thread t = new Thread(h);
public void PLAYActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_PLAYActionPerformed
if (t.isAlive())
{
t.resume();
}
else
{
h = new MiHilo();
t = new Thread(h);
t.start();
}
}
private void PAUSEActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_PAUSEActionPerformed
if (!t.isAlive())
{
JOptionPane.showMessageDialog(null, " ¿En qué está pensando?\nEs imposible pausar algo que no ha empezado.",
"David", JOptionPane.ERROR_MESSAGE);
}
else
{
t.suspend();
}
}
class MiHilo implements Runnable
{
public void run()
{
// Code here...
}
}
我如何在 C# 中做到这一点? 如果我想,如果不是太麻烦的话,告诉我一个如何做一些基本的例子,暂停和恢复,一些简单的事情,比如一个带有标签的 WinForm,以及启动标签时的两个按钮(播放和暂停)怎么办写为 0,如果点击 Play,它会启动一个线程,该线程调用一个函数,该函数具有从 1-1000 变化的函数,睡眠时间为 1 秒,以在标签上显示为文本,并暂停,按下时将暂停此计数渐进式,那么这出戏就会给出,但不使用计时器......
希望不要问太多,通过这个例子,我可以将其调整为我想要的。
感谢您的宝贵时间!
【问题讨论】:
-
.NET 中也可以使用相同的方法(Suspend、Resume),哪些不起作用?
-
这些方法已弃用且危险,您能举个例子吗?请
-
我会先发布一个 .Net 代码,显示 “我做了这个”,然后问 “我怎样才能用非弃用的方法替换它” ..
-
谢谢,感谢postearas这些代码,需要提前
标签: c# multithreading winforms thread-safety