Làm thế nào để giảm bớt sự khó chịu của một cửa sổ bận rộn nhưng không phản hồi?


2

Tôi đang thực hiện rất nhiều mô phỏng trong Matlab trong Windows XP. Thông thường tôi luôn có một Matlab mở chạy mô phỏng dài dòng trong khi tôi thực hiện công việc của mình trong một trường hợp khác.

Có một số phiền toái. Nếu tôi vô tình nhấp vào tên cửa sổ "làm việc" trong thanh tác vụ, nó sẽ tiếp tục được đánh dấu màu vàng mãi mãi (một giờ hoặc lâu hơn) và nếu tôi vô tình nhấp chuột phải vào nó, menu ngữ cảnh sẽ hiển thị - nhưng không bao giờ biến mất. Che các cửa sổ khác - khó chịu nhất.

Tôi tự hỏi có những mẹo làm thế nào để làm cho một menu ngữ cảnh như vậy biến mất mà không làm mất tính toán của tôi.

Về cơ bản nó sẽ trông như thế này mãi mãi: exemplary screen

Cho đến nay tôi đã học được rằng nếu tôi đặt một số wait(0.1) các lệnh trong mã của tôi nó sẽ ngăn chặn điều này, nhưng cũng làm chậm khủng khiếp các tính toán của tôi. Vì vậy, tôi không coi đó là một lựa chọn.

Câu trả lời:


1

Tôi sẽ giả sử, theo mặc định, Matlab chạy mô phỏng của bạn trên luồng giao diện người dùng. Vì vậy, trong khi bạn đang mô phỏng, không có thời gian để xử lý bất cứ điều gì liên quan đến giao diện người dùng.

Để giải quyết vấn đề này, bạn sẽ phải hướng dẫn Matlab chạy mô phỏng của bạn trên một luồng mới. Tôi đã tìm thấy một số bit trên SO về điều này:

Thông tin được tìm thấy trên Google dường như cũng chỉ theo hướng Hộp công cụ tính toán song song .


tham khảo tốt! Tôi không hiểu tại sao - nhưng ngay sau khi gọi Matlabpool UI vẫn phản hồi. Hy vọng rằng nó vẫn như vậy :)
bdecaf

0

Về cơ bản, đây là sản phẩm phụ của thiết kế Windows - Ứng dụng nhận được "thông báo" để đáp ứng với các sự kiện UI và tùy thuộc vào ứng dụng để thực hiện những việc như sơn lại cửa sổ, thay đổi kích thước, v.v.

Windows sẽ gửi cho ứng dụng những "thông điệp" thích hợp để phản hồi lại các sự kiện như nhấp chuột UI, v.v., nhưng ứng dụng được phép bỏ qua hoàn toàn chúng và các ứng dụng được thiết kế / chuyển xấu thường có thể làm điều đó.

Một ứng dụng được thiết kế để "cảm nhận" tương tác sẽ A) làm gián đoạn những gì nó đang làm vào những thời điểm khác nhau để xử lý các tin nhắn đó hoặc B) có một luồng riêng biệt thực hiện công việc thực tế. Tôi có thể thấy "cảm giác tương tác" không phải là ưu tiên thiết kế của một số ứng dụng và nếu ứng dụng thực tế là môi trường phát triển để chạy các chương trình của riêng bạn thì trách nhiệm "cảm thấy tương tác" thuộc về bạn. Tôi đã chơi với Visual Studio và chạy các chương trình vô tình tạo ra các vòng lặp vô tận khiến việc sử dụng CPU của ứng dụng bắn lên tới 100% làm những việc tương tự với giao diện người dùng.

Tôi không thể nghĩ ra tên của bất kỳ chương trình nào trong số này, nhưng có một số chương trình ngoài đó sẽ cho phép bạn thực hiện điều "nhiều không gian làm việc" giống như nhiều máy tính để bàn Linux có. Nếu bạn có thể đặt các phiên bản MATLAB của mình vào các không gian làm việc riêng biệt bằng cách sử dụng một chương trình như vậy, điều đó có thể giúp bạn không vô tình nhấp vào nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.