在這我使用秒錶。當0之間秒錶值至15就會起到在屏幕1的視頻和15後,將在屏幕上顯示0但線程中執行Thread.sleep()
線程無法啓動後線程Sleeep
public partial class Form2 : Form
{
int[] screentimings = new int[2] { 20, 20 };
Stopwatch sp;
Thread thread1;
//private System.Timers.Timer _timer = new System.Timers.Timer();
public Form2()
{
InitializeComponent();
thread1 = new Thread(new ThreadStart(A));
thread1.SetApartmentState(ApartmentState.STA);
sp = new Stopwatch();
sp.Start();
thread1.Start();
}
[STAThread]
public void showOnMonitor(int showOnMonitor)
{
Screen[] sc;
sc = Screen.AllScreens;
Form1 f = new Form1();
f.FormBorderStyle = FormBorderStyle.None;
f.Left = sc[showOnMonitor].Bounds.Left;
f.Top = sc[showOnMonitor].Bounds.Top;
f.Height=sc[showOnMonitor].Bounds.Height;
f.Width=sc[showOnMonitor].Bounds.Width;
f.StartPosition = FormStartPosition.Manual;
f.ShowDialog();
}
[STAThread]
private void A()
{
long i = sp.Elapsed.Seconds;
if (i > 0 && i < 15)
{
showOnMonitor(1);
}
else
{
showOnMonitor(0);
}
Thread.Sleep(500);
}
}
showOnMonitor(1)代碼之後,但15秒後沒有啓動showOnMonitor (0)不起作用。 我是新的線程不知道什麼是錯的。這可能是因爲[STAThread]
沒有它給單線程異常。
你的void A沒有任何循環,所以它執行一次並且線程結束。 – 2014-08-30 10:41:13
我是新的線程問題可以是愚蠢的。我認爲void A()被線程一遍又一遍地調用。 – 2014-08-30 10:44:09
如果你想一次又一次地調用某些東西,你需要使用'Timer'。 – 2014-08-30 10:46:31