110,536
社区成员
发帖
与我相关
我的任务
分享
private void pri(string t)//这个就是我们的函数,我们把要对控件进行的操作放在这里
{
if (!label1.InvokeRequired)
{
richTextBox1.Text =t;
}
else
{
//直接用 lamada 代码反而清晰不少。
Invoke((ThreadStart)(()=>{
richTextBox1.Text =t;
}));
}
}
void ttread()
{
while(true)
{
using (Font font2 = new Font("Arial", 10.0f))
{
this.listBox1.BeginInvoke(new Action(() => { this.listBox1.BackColor = Color.Bisque; }));
System.Threading.Thread.Sleep(500);
}
}
}
看看还不停的涨吗?
顺便吐槽一下娘的用个using非要有实现System.IDisposable接口的对象确实有点古怪。
我本地测试是资源是会正常回收的。
void ttread()
{
while(true)
{
long[] arr = new long[9999999];
for (int i = 0; i < 9999999; i++)
{
arr[i] = long.MaxValue - (new Random()).Next(int.MaxValue);
}
}
}
你可以试试这样,内存耗尽的更快。还能看到更直接的小阶梯,增大数组的长度你可以看到更直接的内存增加。
至于你说的windows不同版本之间内存占用的区别,你打开虚拟内存占用就会发现,只是系统将不用的内存缓存硬盘的机制变化罢了。