2010-12-03 37 views
13

Tôi muốn biết chính xác phương thức Main() hoạt động như thế nào trong dịch vụ windows vì nó liên quan đến Trình quản lý điều khiển dịch vụ. Khi nào nó được thực hiện? Làm thế nào nó móc vào hệ điều hành? Nó được thực hiện khi một dịch vụ được cài đặt? Tôi biết nó được thực thi khi OnStart() được gọi bởi SCM, OnStop() nó đã chạy nên chúng ta sẽ không thực thi nó nữa.Dịch vụ Windows C# Phương pháp chính

Nếu có ai biết nhiều về lĩnh vực này và có thể xây dựng, tôi sẽ đánh giá cao điều đó.

Tôi là một lập trình viên ngoại lệ, tôi không cần mô tả về phương pháp chính nói chung ... chỉ cách hoạt động kết hợp với dịch vụ windows.

+0

Bạn nên biết rằng phương pháp chính là "chính" chỉ dành cho trình biên dịch, vì vậy điều này không liên quan gì đến việc bắt đầu dịch vụ windows. –

Trả lời

13

Khi bạn sử dụng applet Bảng điều khiển để cho dịch vụ bắt đầu SCM khởi chạy quá trình; điều này gây ra mã bên trong Main() để chạy. Dòng ServiceBase.Run() trong phương thức Main() móc các dịch vụ liên quan vào SCM, sau đó gọi phương thức OnStart() cho mỗi dịch vụ được chỉ định trong cuộc gọi phương thức ServiceBase.Run().

+1

Điều gì sẽ xảy ra nếu Main() ném một ngoại lệ? Ứng dụng Bảng điều khiển có thông báo cho người dùng rằng đã xảy ra sự cố không? – PaulK

Các vấn đề liên quan