[英]How do I keep track of multiple Asynchronous Tasks in this code
我正在為用戶創建一個暫停或安排任務的選項。 基於該程序,我將其限制為2次暫停,這可以並行或串行發生。 我認為最簡單的方法是設置兩個不同的Runnables。 但是,如果在任務1結束之前發起任務1 <任務2和任務2,則任務1關閉任務2。
為了論證,任務1是5秒延遲,任務2是10秒延遲。 任務2在任務1中獲得1秒觸發。當任務1完成時,似乎Task2已完成。
threadNumber是我在調用任務時設置的int,用於跟蹤結果。
他們不是獨立行動,而是混合在一起
我將Runnables分成兩個不同的元素,由一個開關/案例觸發。 然而,這並沒有像我想象的那樣孤立行動。
公共類MultiThreadingActivity擴展Activity {
public void StartPause1() {
hand.postDelayed(run1, delay2);
}
Runnable run1 = new Runnable() {
@Override
public void run() {
CallFinishedWithResult(threadNumber);
}
};
public void StartPause2() {
hand.postDelayed(run2, delay2);
}
Runnable run2 = new Runnable() {
@Override
public void run() {
CallFinishedWithResult(threadNumber);
}
};
}
我希望任務是異步,同步和獨立的。
如果你想同時做事,AsyncTask不是正確的答案。 AsyncTask的工作原理是按照它們在同一個線程上的順序運行所有任務。 因此任務1阻止任何其他任務從開始直到完成。 這也意味着任務2的確切時間是不確定的。 如果您需要同時執行多個任務,或者需要嚴格控制時序,請改用Thread。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.