Tôi đã triển khai một ứng dụng WPF và đã đăng ký để khởi chạy khi khởi động Windows. Ứng dụng của tôi là một ứng dụng đăng nhập đơn giản khi người dùng đăng nhập xuất hiện trong khay biểu tượng. Vấn đề là mất khoảng 30 giây để hiển thị chính nó sau khi khởi động Windows. Tôi đã thử Ngen mà không thành công lớn. Tôi muốn tránh thực hiện một màn hình giật gân. Tôi muốn ứng dụng WPF của tôi xuất hiện "ngay lập tức" sau khi Windows khởi động tương tự như những gì Windows Live Messenger làm. Bất cứ điều gì tôi có thể làm như vậy là để giảm thời gian khởi động của nó? Tôi có lựa chọn nào khác hơn là viết mã nguyên bản không? Cảm ơn.Cách tối ưu hóa khởi chạy ứng dụng WPF khi khởi động Windows
Trả lời
Có phải mất 30 giây để khởi động khi máy tính không hoạt động (tức là nếu bạn khởi động máy tính bằng cách nhấp đúp khi máy tính không bận tải cửa sổ)?
Trong khi khởi động Windows, máy tính thường bận rộn với rất nhiều thứ và điều đó có thể gây chậm đi cho ứng dụng của bạn. Không có nhiều bạn có thể làm sau đó.
Nhưng, một số lời khuyên chung cho việc cải thiện khởi động của một ứng dụng WPF:
- Chỉ nhanh chóng điều khiển bạn thực sự cần để hiển thị cho người dùng ban đầu
- Giảm sự phức tạp của các điều khiển của bạn/cửa sổ.
- Đừng làm bất cứ điều gì thời gian tiêu thụ trong các nhà thầu của các điều khiển của bạn & cửa sổ
- thứ Thậm chí ngây thơ như đọc một tập tin từ đĩa địa phương có thể tốn thời gian nếu đĩa là bận rộn với các công cụ khác (như nó thường là trong windows startup)
- cuộc gọi dịch vụ Web có thể mất thời gian thêm dài nếu mạng vẫn chưa được khởi tạo hoàn toàn chưa
- một giải pháp dễ dàng là để giảm tải công việc nặng nhọc để một
BackgroundWorker
hoặc sử dụng các cuộc gọi không đồng bộ để làm I/O và mạng yêu cầu
Ngoài ra còn có một thiết lập mà bạn có thể đưa vào app.config
mà nói thời gian chạy không xác thực các hội đồng với giấy chứng nhận (việc kiểm tra này có thể mất một thời gian dài, bắt đầu đặc biệt lạnh):
<configuration>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
</configuration>
Một số chi tiết các mẹo chung có sẵn trên trang MSDN trên Application Startup Time.
Có thể this site sẽ hữu ích cho bạn. Nó liệt kê một số tùy chọn bạn có để bắt đầu một ứng dụng trước đó (nếu đó là một dịch vụ) hoặc sau khi đăng nhập Windows. Họ liên quan đến một số hacking đăng ký mà bạn sẽ cần phải hoàn tác trong quá trình gỡ bỏ cài đặt.
Tôi thích số Performance Tips of the wpftutorial.net nhiều.
Sử dụng regedit, Tạo một DWORD trong registry tại
HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Serialize
gọi StartupDelayInMSec.
Giá trị mặc định phải được đặt thành 0, nhưng hãy kiểm tra kỹ.
Cắt giảm khoảng 10 giây cho thời gian khởi chạy ứng dụng của tôi sau khi khởi động.
lưu ý: Khóa tuần tự có thể không tồn tại.
Bạn có thể tạo nó bằng cách kích chuột phải vào Explorer và chọn New -> Key
- 1. Khởi chạy Window khi khởi động Windows
- 2. Chạy ứng dụng khi khởi động
- 3. Chạy ứng dụng C# trên Windows Khởi động
- 4. Windows: Khởi động ứng dụng chậm
- 5. Cách khởi động/khởi chạy ứng dụng tại thời điểm khởi động Android
- 6. C# WPF Khởi động ứng dụng rất chậm
- 7. Cách chạy tác vụ khi dịch vụ windows khởi động?
- 8. Làm cách nào để khởi chạy ứng dụng khi khởi động hệ thống? (Mac OSX, Cocoa)
- 9. WPF Window with Style = Không bao gồm thanh tác vụ khi tối đa hóa sau khi khởi tạo ứng dụng
- 10. Ứng dụng iOS Crashing khi khởi chạy
- 11. Khởi chạy ứng dụng (.EXE) từ C#?
- 12. Buộc trình biên dịch .NET JIT tạo mã tối ưu nhất trong khi khởi động ứng dụng
- 13. Khởi động Mac OSX launchctl khởi chạy tiến trình root khi khởi động
- 14. WiX: Cách đăng ký ứng dụng để bắt đầu khi Windows khởi chạy?
- 15. Làm cách nào để đặt chương trình khởi chạy khi khởi động
- 16. Làm cách nào để hiển thị con trỏ chờ trong khi khởi động ứng dụng WPF?
- 17. Khởi chạy dịch vụ từ khởi động ứng dụng, không hoạt động
- 18. Chạy Jetty tự động khi khởi động
- 19. Khởi động lại ứng dụng bằng C#
- 20. Tự động khởi chạy ứng dụng Android sau khi tải ứng dụng lên điện thoại?
- 21. Khởi động lại ứng dụng Django chạy trên Apache + mod_python
- 22. Cách bắt đầu tệp python trong khi Windows khởi động?
- 23. Khởi động tomcat lúc khởi động Windows 7?
- 24. Cần khởi động ứng dụng ngay sau khi khởi động xong
- 25. Cách tránh Màn hình đen khi khởi động ứng dụng
- 26. Dữ liệuWithContentsOfURL có tệ khi khởi chạy ứng dụng không?
- 27. Đặt kích thước tối đa của một khung hình JFrame khi khởi chạy ứng dụng
- 28. Khởi chạy ứng dụng Android với hoạt động cụ thể
- 29. Nhận ngoại lệ SIGKILL khi khởi chạy lại ứng dụng
- 30. .NET WPF MissingMethodException khi khởi chạy chủ đề mới
Không có vấn đề với một sự khởi đầu lạnh trên double-click, phải mất khoảng 2 giây để khởi động. Vấn đề là trên cửa sổ khởi động. Tôi đã nhìn thấy các ứng dụng như Windows Live Messenger khởi chạy ngay lập tức trên các cửa sổ khởi động nhưng đây là những ứng dụng gốc. Tôi có thể đến gần một cái gì đó tương tự trong WPF? – pfongkye
Xem qua mã khởi động/xây dựng của bạn và tìm kiếm các công cụ như đĩa I/O và I/O mạng và di chuyển chúng đến chủ đề nền/mã async. Có lẽ ứng dụng của bạn đang chặn một mạng chưa được khởi tạo bởi các cửa sổ chưa –
@IsakSavo thực sự đơn giản xin chào WPF ứng dụng thế giới thể hiện cùng một hành vi – Poma