小编use*_*012的帖子

启动时设置线程生存期

有没有办法设置一个值,当你启动线程时线程应该(最大)存活多长时间?

用另一种方式说,用"伪代码",有这样的东西:

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,如下面的示例所示,但当任务挂起时,它无法检查是否发生了取消请求.

c# lifecycle multithreading

6
推荐指数
2
解决办法
928
查看次数

在构造函数中初始化数组类变量

以下代码给出了错误:

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)

但这些都没有.

c# arrays initialization

3
推荐指数
1
解决办法
494
查看次数

C中使用openMP的线程数问题

代码:

#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的一些排列?

c openmp

1
推荐指数
1
解决办法
78
查看次数

在Python 3中替换字符串中的unicode字符

我有一个字符串,其中一些字符显示为unicode,例如:"bla bla bla\uf604 bla bla bla"

我试过了string = string.replace("\uf604", "X"),但没有任何反应.我试图将字符串解码为utf-8,但显然这在Python 3中不起作用.

我该如何更换角色?

python string unicode replace python-3.x

1
推荐指数
1
解决办法
3561
查看次数