tôi bắt đầu hình thức của tôi theo cách thông thường:Cách thích hợp để đóng ứng dụng WinForms theo cách lập trình sau một thời gian nhất định là gì?
Application.Run(new MainForm());
Tôi muốn nó để mở và chạy cho đến một thời gian nhất định, sau đó đóng. Tôi đã thử những điều sau đây nhưng không có kết quả:
(1) Trong phương thức Main (là Application.Run() tuyên bố là), tôi nhập dữ liệu sau SAU Application.Run()
while (DateTime.Now < Configs.EndService) { }
KẾT QUẢ: Nó không bao giờ bị đánh trúng.
(2) TRƯỚC Application.Run() Tôi bắt đầu một nền mới Ðề tài:
var thread = new Thread(() => EndServiceThread()) { IsBackground = true };
thread.Start();
nơi EndServiceThread là:
public static void EndServiceThread()
{
while (DateTime.Now < Configs.EndService) { }
Environment.Exit(0);
}
KẾT QUẢ: vshost32.exe đã ngừng tai nạn lao động.
(3) Trong MainForm Tick sự kiện:
if (DateTime.Now > Configs.EndService)
{
this.Close();
//Environment.Exit(0);
}
KẾT QUẢ: vshost32.exe đã ngừng tai nạn lao động.
Cách thích hợp để đạt được mục tiêu của tôi là gì? Một lần nữa, tôi muốn khởi chạy Biểu mẫu, để mở Biểu mẫu & cho đến một thời điểm nhất định (Configs.EndService), sau đó đóng.
Cảm ơn bạn, Ben.
đâu bạn sẽ thêm cái này chứ? Trong 'MainForm', vì đó là điểm khởi chạy của các loại cho phần còn lại của ứng dụng? –
@Grant: Có, hãy đặt bộ hẹn giờ trên biểu mẫu chính. Đặt thuộc tính 'Enabled' thành' True', và khoảng thời gian của nó đến bất kỳ khoảng thời gian kiểm tra nào bạn muốn (1 giây, 10 phút, bất cứ điều gì). –