我正在编写一个从多处理队列中抽取的对象,我发现当我运行此代码时,我得到Dim Directory As String
Dim MyFile As Variant
Dim MyFolder As String
Dim i As Long
iYesNo = MsgBox("Do the patients and barcode match the setup sheet?", vbYesNoCancel)
Select Case iYesNo
Case vbYes
GoTo Line2
Case vbNo
MsgBox ("Doesn't match! Please enter again")
MyFolder = Directory ' delete all txt files in the folder
MyFile = MyFolder & "*.txt"
For i = LBound(MyFile) To UBound(MyFile)
Kill MyFolder & MyFile(i)
Next
RmDir Directory ' delete folder
GoTo Line1
End Select
。然而,如果我告诉程序在所指的位置稍微睡一会儿,我会得到data = []
。
data = [1,2]
**编辑:**如果在while循环之前有一个print语句,也会发生这种情况。这告诉我,调用q.put()时会发生一些事情,但我无法找到有关此问题的任何文档。
答案 0 :(得分:0)
在docs中提到了multiprocessing.Queue
注意当一个对象被放入一个队列时,该对象被腌制并且一个 后台线程稍后将pickle数据刷新到底层 管。这有一些后果,但有点令人惊讶 不应该造成任何实际困难 - 如果他们真的很烦 然后,您可以改为使用由经理创建的队列。
- 后 将对象放在空队列中可能存在无穷小 队列的empty()方法返回False和get_nowait()之前的延迟 可以在不提高Queue.Empty的情况下返回。 ...
醇>