虽然我在Stack Overflow上找到了一些关于我的问题的问题,但是我仍然无法自行解决,因此我将尝试在这里询问。我会粘贴代码,所以我认为解释起来会更容易。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Thread thread = new Thread(new ThreadStart(StartCalculation));
thread.Start();
}
private void Form1_Load(object sender, EventArgs e)
{
}
public void StartCalculation()
{
List<int> numbers = new List<int>();
for (int i = 0; i <= 100; i++)
{
numbers.Add(i);
string textForLabel = i.ToString();
label.SafeInvoke(d => d.Text = textForLabel);
}
}
}
- 我想从不同的线程中启动StartCalculation方法,并从Form1访问该int列表(在10秒后有10个元素,在20秒后有20个元素等)。这种情况是否可能?
- 在Form1()中创建列表,然后在StartCalculation中更改它是否可能?感谢回答:)
public partial class Form1 : Form
{
List<int> list = new List<int>(); // list of int values from game's memory
public Form1()
{
InitializeComponent();
Thread thread = new Thread(new ThreadStart(refreshMemory));
thread.Start();
Thread thread2 = new Thread(new ThreadStart(checkMemory));
thread2.Start();
}
private void Form1_Load(object sender, EventArgs e)
{
}
public void refreshMemory()
{
while (true)
{
// ... refresh game's memory and then, refresh list //
Thread.Sleep(100);
}
}
public void checkMemory()
{
while (true)
{
// eg. if (list[0] == 5) {game:: move_right()}//
Thread.Sleep(100);
}
}
}
我正在制作游戏机器人。我希望它能在不同的线程中读取游戏内存(更改内存列表),然后使用其他几种方法(在不同的线程中)从该列表中读取并根据内存值执行游戏操作。它似乎可以正常工作,但如果您认为它可能存在安全隐患,我希望能够使其更加安全。希望我没有在这里贴错东西。