在兩個Thread中同時對同一個 String Array進行快速的 append 和 remove
就會發生 Index Out of Range
已使用網路上找到的各種修改 extension Array方案都無效
var dataList = [String]()
...
func Thread1_RemoveFun()
{
...
DispatchQueue.global().async /* 問題就出在這一行 */
{
...
if( dataList.Count > 0)
{
dataList.remove(at: 0)
}
...
}
...
}
func Thread2_AppendFun()
{
...
dataList.append("Test")
...
}
func Thread3_ReadFun()
{
if( nIndex < dataList.Count)
{
// dataList.count 輸出是 1 但還是發生
// 用Debug breakpoint去看, dataList.count 盡然是 0
print( \(dataList.count)"
readStr = dataList[nIndex]
}
}
同一個head, Auto Express 和 Add Express 竟然顯示不同數值
搞不懂...

沒有留言:
張貼留言