Khi làm với WinForms, .Net luôn có sẵn một Thread gọi là Main/UI Thread để dành cho việc hiển thị GUI (windows and its controls) trên màn hình.
Theo đề bài của bạn. Từ Winform tạo ta 10 thread chạy và có thể pause và resume. Cho nên solution cho vấn đề này sẽ cần System.Threading namepsace. (Mình không biết bạn đang dùng .Net Framework version mấy nhưng System.Threading luôn luôn có). Sau đó bạn tìm hiểu 2 đối tượng sau:
- ManualResetEvent: Giúp quản lý tiến trình chạy của Thread (có thể pause và resume)
- ThreadPool: Giúp quản lý 10 Threads bạn đang tạo tránh trường hợp "đụng chạm" với thằng Main/UI thread của WinForms (nó sẽ thường làm windows unresponsive ngay).
Code ví dụ:
Mã:
class Program
{
private static Dictionary<int, ThreadInfo> threads = new Dictionary<int, ThreadInfo>();
static void Main(string[] args)
{
if (!threads.ContainsKey(index))
{
// Chay 1 thread moi
var thread = new Thread(RunThread);
thread.Start();
var mres = new ManualResetEvent(true);
var info = new ThreadInfo { Thread = thread, ProceedSignal = mres };
threads.Add(index, info); // index from 0 -> 10
}
else
{
ThreadInfo info = threads[index];
if (info.ProceedSignal.Wait(0))
{
// Thread dang chay, pause lai. (Event is signaled)
info.Signal.Reset();
}
else
{
// Thread đang dừng, resume. (Event is unsignaled)
info.ProceedSignal.Set();
// Change the button image here.
}
}
}
private class ThreadInfo
{
Thread Thread { get; set; }
ManualResetEvent Signal { get; set; }
}
}
Cái này là code "chay" fox viết trên này. Bạn đừng có copy paste rồi chạy ko được lại khóc nha. Cái này là gợi ý, bạn đã có keywords, hãy tự tìm hiểu tiếp. Có gì không hiểu thì lên đây mô tả"THẬT RÕ RÀNG", mình sẽ cố gắng giúp!
Vệ sinh cá nhân là một phần quan yếu của sức khỏe nam giới. Dùng dung dịch vệ sinh mỗi ngày mang lại nhiều ích, giúp loại bỏ vi khuẩn và vi sinh vật gây hại, giúp khu vực cơ quan sinh dục luôn sạch...
Gel vệ sinh cu, bạn trai có nên...