Мне нужно использовать резьбу для приостановки/возобновления движения снаряда. На button3_Click
случае движение снаряда рисуется на экране:Запуск и приостановка потоков?
public void button3_Click(object sender, EventArgs e)
{
//... Lots of drawingcode...
}
Мне нужно, чтобы приостановить/возобновить движение снаряда с использованием той же button3_Click
, но я новичок в многопоточности и не могу понять, каким образом.
Я попытался:
public partial class Simulation : Form
{
Thread parallel1;
Thread parallel2;
public Simulation()
{
InitializeComponent();
parallel1 = new Thread(new ThreadStart(button3_Click));
}
}
Но я получаю сообщение об ошибке ...
No overload for 'button3_Click' matches delegate 'System.Threading.ThreadStart'
Я думаю, что мне нужно две темы, так что, как один паузе, другой бежит принять a button3_Click
и возобновить другую тему. Как это может быть сделано?
, если у вас есть метод drawingcode названный как 'ничтожной Рисованные() 'и использовать это в ThreadStart, по крайней мере, ошибка компиляции исчезла ... не забудьте вызвать Start on parallel1 ... но я предполагаю, что ваш следующий бамб будет тем фактом, что вы не можете ссылаться на связанные с UI элементы на не-UI-потоке. – rene
Ответ кажется, что я не могу этого сделать, потому что, как вы сказали, есть только один поток пользовательского интерфейса. Позор действительно. – user1920206
@ user1920206 ну, вы всегда можете использовать 'Invoke' для возврата обратно в поток пользовательского интерфейса. Но если вы просто пытаетесь что-то оживить, разве вам не лучше с таймером? – bas