小编Guy*_*y L的帖子

等待线程实际在c#中启动

我需要启动一个线程,但在线程实际运行继续.现在我的代码看起来像:

        splashthread.IsBackground = false;
        splashthread.Start();
        Thread.Sleep(100); // Wait for the thread to start
Run Code Online (Sandbox Code Playgroud)

我不喜欢这些伏都教睡眠(至少可以说),所以我正在寻找更好的方式来做上述事情.

有任何想法吗?

.net c# multithreading

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

(Windows)同时打开同一文件

我试图在Windows中同时打开一个文件进行书写和阅读.我有一个程序(每一秒)写入文件,一个程序从中读取.在unix中它完美地工作但它在Windows中不起作用(我无法打开已经打开的文件).我用fopen()打开文件.

我怎么解决这个问题?

EDIT2:

签出_fsopen它使用FILE *,并相应地设置共享标志.

编辑:

首先,一些代码:这是我用来打开文件的方式

   FILE* f = NULL;
        int res = fopen_s(&f, "c:\\temp\\File1.txt", "w");
        if (res != 0) return;

        while (true) {
            Sleep(1000);
            fprintf_s(f , "Some data");
        }
        fclose(f); 
Run Code Online (Sandbox Code Playgroud)

阅读是在其他应用程序中,但确实如此fscanf.

固定代码:

char d[] = "data";


HANDLE h = CreateFile("c:\\temp\\f.txt", GENERIC_READ | GENERIC_WRITE,
    FILE_SHARE_WRITE | FILE_SHARE_READ, NULL, CREATE_ALWAYS, /*FILE_ATTRIBUTE_NORMAL*/ FILE_FLAG_WRITE_THROUGH, NULL);

if (h == INVALID_HANDLE_VALUE) return 0;

DWORD bytesW;
while(true) {
    Sleep(100);
        WriteFile(h, d, strlen(d), &bytesW, NULL);
}

CloseHandle(h);
return 0; 
Run Code Online (Sandbox Code Playgroud)

c c++ windows

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

Python嵌入:PyImport_Import不是来自当前目录

使用下一行

pModule = PyImport_Import(pName);

仅从当前目录加载模块.

但我想从其他地方加载什么?这样做有一个简洁的方法吗?

PyRun_SimpleString("import sys\nsys.path.append('<dir>')"); 工作,但它有点难看 - 我正在寻找一个更好的方法

谢谢!

c python python-embedding

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

标签 统计

c ×2

.net ×1

c# ×1

c++ ×1

multithreading ×1

python ×1

python-embedding ×1

windows ×1