Nếu bạn có dịch vụ cửa sổ và một ứng dụng biểu mẫu cửa sổ sử dụng cùng một đối tượng tĩnh, đó có phải là cùng một đối tượng trong cả hai ứng dụng không? Nói cách khác, nếu tôi cập nhật đối tượng trong dịch vụ thì nó cũng sẽ được cập nhật trong ứng dụng biểu mẫu nếu cả hai đang chạy cùng một lúc?Là một đối tượng tĩnh cùng một đối tượng trong nhiều ứng dụng đang chạy?
Trả lời
Chúng chạy trên các quy trình khác nhau để chúng không chia sẻ đối tượng tĩnh.
Không có liên quan đến exaclty với câu hỏi của bạn nhưng các chuỗi được tạo trên cùng một ứng dụng là một câu chuyện khác. Họ sẽ chia sẻ biến tĩnh trừ khi được đánh dấu bằng ThreadStatic
thuộc tính
Tôi nghĩ rằng mỗi ứng dụng chạy trong Quy trình riêng của nó. Tôi thực sự nghi ngờ rằng việc cập nhật một đối tượng tĩnh trong dịch vụ Windows có bất kỳ tác động nào đối với đối tượng tĩnh đang chạy dưới dạng ứng dụng biểu mẫu Windows.
Dịch vụ Windows chạy dưới system
tài khoản khi ứng dụng biểu mẫu Windows chạy dưới tài khoản User
.
Như những người khác đã chỉ ra trong các nhận xét, các quy trình chạy trong bộ nhớ khác nhau. Mỗi quy trình có không gian địa chỉ riêng của nó.
Dịch vụ Windows trả lời các lệnh Trình quản lý kiểm soát dịch vụ.
Chúng hoàn toàn là hai thứ khác nhau.
No. Trừ khi bạn làm điều gì đó cụ thể để đạt được các đối tượng này không được chia sẻ giữa các quy trình khác nhau.
Câu trả lời đơn giản cho điều này là mỗi quy trình có tĩnh của riêng nó nên không, nó sẽ không được chia sẻ giữa quá trình dịch vụ và máy tính để bàn.
Phần phức tạp là thậm chí có thể có nhiều trường hợp tĩnh trong một quá trình duy nhất.
Trong Java
có một phiên bản của đối tượng tĩnh cho mỗi ClassLoader
tải lớp đó. Tôi đã kiểm tra chức năng tương đương trong C#
. Tôi tìm thấy this question on SO cho thấy rằng thực sự có điều gì đó tương tự với nhiều trình nạp lớp trong số C#
(tôi thực sự ở số CLR
) và mặc dù tôi không tìm thấy bất kỳ tham chiếu cụ thể nào cho nhiều trường hợp tĩnh Tôi chắc chắn rằng đó là trường hợp.
một cách đơn giản không,
tĩnh là 'static per AppDomain
' (và bạn có thể có nhiều tên miền cho mỗi quá trình), vì vậy không ngay cả đối với một quy trình an toàn để giả định rằng các biến tĩnh của bạn sẽ được 'chia sẻ' (thường là đúng trừ bạn tạo tên miền mới bằng tay, ví dụ: xem What is AppDomain?) - ví dụ các ứng dụng web thường phá vỡ các phần tử 'tĩnh', v.v.
Nói cách khác, bạn cần phải sử dụng một số loại kiên trì để có thể chia sẻ dữ liệu của mình giữa các ứng dụng khác nhau. Hoặc sử dụng từ xa, WCF để giao tiếp qua các ranh giới ứng dụng (tên miền).
- 1. Redbean, Nhiều nhiều đối tượng sử dụng cùng một đối tượng
- 2. PHP isset ($ this) và sử dụng cùng một phương thức đối tượng trong ngữ cảnh tĩnh và đối tượng
- 3. Capture đầu ra cuối cùng là một đối tượng R
- 4. Tạo một đối tượng theo cách tĩnh
- 5. Điều gì là sai khi sử dụng một đối tượng thành viên tĩnh với một lớp?
- 6. tĩnh đối tượng mảng
- 7. Trọng một phương pháp trong các đối tượng tĩnh tạo
- 8. Đúc một đối tượng java vào đối tượng [] trong Scala
- 9. Thêm đối tượng vào một mảng đối tượng trong Powershell
- 10. Là int một đối tượng trong Java?
- 11. Có thể cho nhiều đối tượng giữ lại cùng một đối tượng trong Objective-C/Cocoa không?
- 12. Tham chiếu đối tượng tĩnh được tạo trong một lớp trong toàn bộ ứng dụng
- 13. Nhiều đối tượng để quan hệ đối tượng trong C#
- 14. Nhiều đại biểu cho một đối tượng?
- 15. ANDing javascript đối tượng cùng
- 16. Có thể biết một đối tượng có đang chạy trong một AppDomain khác không?
- 17. Trang chuyên sâu Ajax: sử dụng lại cùng một đối tượng XMLHttpRequest hoặc tạo một đối tượng mới mỗi lần?
- 18. mảng nhiều đối tượng
- 19. NodeJS - nhiều đối tượng được chia thành nhiều tệp nhưng trong cùng một không gian tên
- 20. đối tượng ứng dụng android
- 21. ajax đang sản xuất [đối tượng đối tượng]?
- 22. Làm thế nào để biết một đối tượng là một đối tượng RegExp?
- 23. đối tượng chia sẻ giữa các ứng dụng web của cùng một tomcat
- 24. Phiên ASP.NET - đối tượng lớn và nhiều đối tượng nhỏ
- 25. Log4Net trong đối tượng Ứng dụng?
- 26. Là một đối tượng truyền dữ liệu giống như đối tượng giá trị?
- 27. Phát sinh một đối tượng HTMLElement từ đối tượng jQuery
- 28. Vòng đời đối tượng tĩnh của Android
- 29. Kích thước của một đối tượng trong thời gian chạy
- 30. ASP 3.0 Đối tượng ứng dụng
Điều này không liên quan gì đến tài khoản người dùng. Các quy trình khác nhau có không gian bộ nhớ riêng biệt và do đó không chia sẻ dữ liệu theo mặc định. –
@BrianRasmussen hoàn toàn - Sandeep bạn có lẽ nên chỉnh sửa nó một chút. – NSGaga