我正在使用fileSystemWatcher和Created事件监听器我正在启动一个新的Thread来处理文件内容并做一些耗时的操作。代码如下所示
fileSystemWatcher = new FileSystemWatcher(folderToWatchFor);
fileSystemWatcher.EnableRaisingEvents = true;
fileSystemWatcher.Created += new FileSystemEventHandler(FileCreated);
private void FileCreated(Object sender, FileSystemEventArgs e)
{
string file_path = e.FullPath;
string file_name = e.Name;
Thread thread = new Thread(() => processFileThread(file_name, file_path));
thread.Start();
//count the active threads here??
}
我喜欢获取活动的线程数,以便一次查看有多少活动线程,为此我使用了
System.Diagnostics.Process.GetCurrentProcess().Threads.Count
但它为我带来了不同的重要性。就像我简单地复制了1个文件一样,所以只有1个线程处于活动状态,但上面的代码返回了23个。
那么我如何计算函数FileCreated()
中启动的活动线程答案 0 :(得分:0)
在
private int _threadCounter = 0;
private object _threadCounterLock = new object();
lock(_threadCounterLock)
_threadCounter++;
将返回应用程序的所有线程。 没有直接的可能性只能获得自己的线程。在操作系统之上,线程是.net框架本身的线程(由于这个线程数量很大)。
如果使用静态变量,请确保由于多线程访问而实现锁定/互锁。
profileUrl: Observable<string | null>;
ngOnInit() {
this.speakerService.getSpeakers().subscribe(speakers => {
this.speakers = speakers;
for(let i = 0; i < speakers.length; i++) {
const ref = this.storage.ref(this.speakers[i].profilePath);
this.profileUrl = ref.getDownloadURL();
console.log(this.profileUrl);
}
});
}