cuốn sách gpt4 ai đã làm

c++ - SetScrollPos 阻塞

In lại Tác giả: Walker 123 更新时间:2023-11-28 02:27:42 29 4
mua khóa gpt4 Nike

在我的多线程 mfc 应用程序中,m_view->SetScrollPos 处于阻塞状态并且所有应用程序都被卡住。 View 是在另一个线程中创建的,这是这种行为的原因吗?

//SetScrollPos(SB_HORZ,pos);
::SetScrollPos(GetSafeHwnd(), SB_HORZ, pos, true);

SetScrollInfo() 也是如此。

câu trả lời hay nhất

原因很简单:

更改滚动位置会导致创建一些窗口消息。如果您在另一个线程中,并且托管窗口的线程尚未准备好通过 GetMessaage/PostMessage 处理消息,则使用 SendMessage 的线程将被阻塞,直到可以传递消息。

这是一种正常且有据可查的行为。

我的建议:切勿从另一个线程执行 UI 操作。选择一种中立的通信方法来通知其他线程有关更改(PostMessage、Timer 和数据字段等)...

关于c++ - SetScrollPos 阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29962724/

29 4 0
Walker 123
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress