sds1920
چهارشنبه 30 مهر 1393, 12:18 عصر
سلام.
من میخواستم یه راهی پیدا کنم برای اینکه یک thread رو بلافاصله متوقف کنم.ولی هر چه تلاش کردم نشد.
من یک ترد دارم که کدش رو در زیر میبینید.این ترد 25 ثانیه توقف می کنه و بعد یکسری کار انجام می ده و دوباره این چرخه رو طی میکنه.حالا من می خوام برای مثال زمانی که برنامه بسته شد این ترد رو هم بلافاصله متوقف کنم.توی C# این کار با متد Abort انجام می شه ولی توی جاوا من هر کاری می کنم نمی شه.البته من روشهایی رو دیدم که یک متغییر boolean رو به عنوان شرط حلقه قرار می دن و بعد false می کنن تا حلقه اجرا نشه و ترد تموم بشه، ولی من قصدم این هست که ترد بلافاصله متوقف بشه.نه اینکه 25 ثانیه صبر کنه و بعد اگر متغییر true بود ادامه بده و اگر نه کار تموم بشه.
Runnable func = new Runnable()
{
@Override
public void run()
{
while (true)
{
try
{
Thread.sleep(25000);
// Do somthings
} catch (InterruptedException e)
{
}
}
}
};
من میخواستم یه راهی پیدا کنم برای اینکه یک thread رو بلافاصله متوقف کنم.ولی هر چه تلاش کردم نشد.
من یک ترد دارم که کدش رو در زیر میبینید.این ترد 25 ثانیه توقف می کنه و بعد یکسری کار انجام می ده و دوباره این چرخه رو طی میکنه.حالا من می خوام برای مثال زمانی که برنامه بسته شد این ترد رو هم بلافاصله متوقف کنم.توی C# این کار با متد Abort انجام می شه ولی توی جاوا من هر کاری می کنم نمی شه.البته من روشهایی رو دیدم که یک متغییر boolean رو به عنوان شرط حلقه قرار می دن و بعد false می کنن تا حلقه اجرا نشه و ترد تموم بشه، ولی من قصدم این هست که ترد بلافاصله متوقف بشه.نه اینکه 25 ثانیه صبر کنه و بعد اگر متغییر true بود ادامه بده و اگر نه کار تموم بشه.
Runnable func = new Runnable()
{
@Override
public void run()
{
while (true)
{
try
{
Thread.sleep(25000);
// Do somthings
} catch (InterruptedException e)
{
}
}
}
};