|
多線程系列之wait、notify、sleep、join、yield、synchronized關鍵...
想了解線程可先看上述連結
先建立一個thread, 寫法如下,可以正常工作
- private void start()
- {
- Thread mvThread = new Thread(new ThreadStart(MoveFiles));
- mvThread.Start();
- }
- private void MoveFiles()
- {
- .........
- .........
- }
複製代碼
或是
- Thread mvThread = new Thread(new Runnable(){
- @Override
- public void run()
- {
- // Do Stuff
- }
- });
- mvThread.start();
複製代碼
我希望在thread結束後,繼續往下工作
但因為執行緒會不等工作完成就往下執行
讓後面的工作無法完成,因為成是先做完後續工作如背景工作時,檔案過大時會導致順序錯亂
但可加上了isAlive的判斷, 如下…
- private void start()
- {
- Thread mvthread = new Thread(new ThreadStart(MoveFiles));
- mvthread.Start();
- while (mvthread.isAlive()==true) ;
- mvThread.sleep(100);
- }
- private void MoveFiles()
- {
- .........
- .........
- }
複製代碼
或
- Thread mvThread = new Thread(new Runnable(){
- @Override
- public void run()
- {
- // Do Stuff
- }
- });
- mvThread.start();
複製代碼
這樣就會等mvThread完成他的工作才繼續往下執行工作
不會有順序錯亂的問題了
參考文章
https://stackoverflow.com/questi ... -use-thread-classes
|
|