本文介绍: 我的报错是t1线程先运行,t2线程排在后面,当t2线程向t1线程发送消息时报错的,也就是说线程t1的优先级较高。因为我代码里面开启了两个线程,用2个线程去跑,即2个进程。这两个线程的优先级是不一样的。优先级低的是不能向优先级高的发送消息,即使他们是在同一个用户的权限下运行。原因:网上查了下是由于windows安全机制导致 integrity level低的进程不能向高的进程发消息。第三种方案:在源代码本身修改注册表,来提高代码本身的权限,然后去运行。但是我的代码是爬虫代码,我不想设置管理员运行。
部分python脚本:
报错信息:报错信息“pywintypes.error: (5, ‘PostMessage’, ‘拒绝访问。’)”
原因:网上查了下是由于windows安全机制导致 integrity level低的进程不能向高的进程发消息。
确实是涉及到权限问题。
因为我代码里面开启了两个线程,用2个线程去跑,即2个进程。这两个线程的优先级是不一样的。优先级低的是不能向优先级高的发送消息,即使他们是在同一个用户的权限下运行。
所以,解决方案一:
使用管理员运行,即使用管理员打开pycharm,然后运行程序。问题解决。
但是我的代码是爬虫代码,我不想设置管理员运行。需要找第二种方法
方案二:设置线程优先级
我的报错是t1线程先运行,t2线程排在后面,当t2线程向t1线程发送消息时报错的,也就是说线程t1的优先级较高。解决的方案是设置t1为低级别优先级。t1.daemon = True
或者通过setPriority(threading.Thread.MAX_PRIORITY)来设置优先级别。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。