有没有办法设置一个值,当你启动线程时线程应该(最大)存活多长时间?
用另一种方式说,用"伪代码",有这样的东西:
Thread t = new Thread();
t.start();
t.abort_after_x_seconds(30);
Run Code Online (Sandbox Code Playgroud)
如果它超过30秒,它会使线程中止.
编辑:我仍然无法让它工作,我原来的是:
while(true)
{
if(...)
{
Thread t = new Thread(new ThreadStart(startMethod));
t.start();
}
Thread.sleep(...);
}
Run Code Online (Sandbox Code Playgroud)
问题是有时候线程会挂起(我没有实现线程所做的事情,所以我不确切知道为什么(这是一个学校项目,我们组织起来的蠢货)),所以我想要杀死那些线程.我尝试使用Tasks和CancellationTokens,如下面的示例所示,但当任务挂起时,它无法检查是否发生了取消请求.
以下代码给出了错误:
public class SomeClass
{
private int a;
private int b;
private int c;
private int[] values;
public SomeClass()
{
a = 1;
b = 2;
c = 3;
values = {a, b, c};
}
public static void Main()
{
SomeClass sc = new SomeClass();
}
}
Run Code Online (Sandbox Code Playgroud)
我希望值包含a,b和c.
我也试过像这样在构造函数之外初始化数组.
private int[] values = {a, b, c};
Run Code Online (Sandbox Code Playgroud)
并在构造函数内完全初始化它,如下所示:
int[] values = {a, b, c};
Run Code Online (Sandbox Code Playgroud)
但这些都没有.
代码:
#include <stdio.h>
#include <stdlib.h>
#include <omp.h>
int main(int argc, char** argv){
omp_set_dynamic(0);
omp_set_num_threads(4);
#pragma omp paralell
{
printf("%d\n", omp_get_thread_num());
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
0
Run Code Online (Sandbox Code Playgroud)
输出不应该是0,1,2和3的一些排列?
我有一个字符串,其中一些字符显示为unicode,例如:"bla bla bla\uf604 bla bla bla"
我试过了string = string.replace("\uf604", "X"),但没有任何反应.我试图将字符串解码为utf-8,但显然这在Python 3中不起作用.
我该如何更换角色?