Jim*_*_CS 3 c# multithreading task-parallel-library
我在一个单独的线程中运行一个字符串List的无限循环.我希望能够在线程运行时将字符串添加到此列表中.我觉得我写的代码是"错的".在无限循环中,我遍历列表中的每个字符串并对其执行操作,因此我似乎无法从主线程向该列表添加字符串,因为我将干扰同时发生的变量被另一个线程访问.这是我的代码的样子 -
class StringTest
{
public List<string> ListOfStrings = new List<string>();
public Task MainLoopTask;
bool IsRunning = false;
public void AddToList(string myString)
{
ListOfStrings.Add(myString); // Adding a string to the list
if (!IsRunning)
{
IsRunning = true;
MainLoopTask = Task.Factory.StartNew(MainLoop);
}
}
public void MainLoop()
{
while (true)
{
foreach(string s in ListOfStrings) // Operating on the list in a separate thread
{
...
...
...
}
}
Run Code Online (Sandbox Code Playgroud)
}
这个坏代码还是可以的?如果它不好,我该怎么办才能解决它?
| 归档时间: |
|
| 查看次数: |
100 次 |
| 最近记录: |