小编Joh*_*oer的帖子

FileSystemWatcher删除事件处理程序

出于某种原因,我无法从FileSystemWatcher中删除事件处理程序.

这就是我所拥有的

void Start()
{
     ivFileSystemWatcher = new FileSystemWatcher();
     ivFileSystemWatcher.Changed += 
        new FileSystemEventHandler(ivFileSystemWatcher_Changed);
}

void Stop()
{
     ivFileSystemWatcher.Changed -= 
        new FileSystemEventHandler(ivFileSystemWatcher_Changed);
     ivFileSystemWatcher.Dispose();
}
Run Code Online (Sandbox Code Playgroud)

当我打电话给开始时,我开始接收更改事件,但是当我呼叫停止时,我希望事件停止,但它们仍在被提升.

c# events filesystemwatcher handler

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

Javascript事件冒泡

我有这个设置

<div onclick="SomeEvent">
    <input type=checkbox value=1>1
    <input type=checkbox value=2>2
    <input type=checkbox value=3>3
</div>

当用户单击复选框时我不希望SomeEvent被触发的问题.

在某些情况下,我确实有一行
"event.stopPropagation();"
但这似乎什么都不做.

javascript event-bubbling

3
推荐指数
2
解决办法
7832
查看次数

C#重构代码

目前我的代码看起来像这样

Status("Start Step 1");
result = Step1();
Status("End Step 1", result);

Status("Start Step 2");
result = Step2();
Status("End Step 2", result);

Status("Start Step 3");
result = Step3();
Status("End Step 3", result);
Run Code Online (Sandbox Code Playgroud)

是否有可能以某种方式重构此代码并摆脱状态行. - 但是,在每个步骤的开始和结束时更新状态非常重要.

我想过将状态行移动到Step1,2,3调用中,但这会使方法变得混乱.

c# refactoring

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

线程问题

可能重复:
在.NET中创建阻塞队列<T>?

我有典型的生产者和消费者线程问题.但是唯一的区别是允许生产者建立一个包含5个项目的缓冲区,之后它必须等到一些项目被消耗掉.

在c#中实现这一点的最佳解决方案是什么.目前我使用信号量实现它,但生产者似乎非常迅速地建立了超过100个项目的缓冲区.我没有语法来处理将缓冲区限制为5个项目.我正在考虑使用一个静态整数 - 让生产者增加它 - 当它达到5时,生产者进入睡眠状态.让消费者减少它并唤醒生产者.

c# multithreading

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

realloc和自由原因"双重自由或腐败"

忍受我.我在8年内没有用c编码,我完全不知道为什么我的字符串操作不起作用.我正在写一个永远循环的程序.在循环中,我初始化两个char指针,每个指针都传递给一个向char指针(数组)添加文本的函数.函数完成后,我打印char指针并释放两个char指针.但是,程序在7次迭代后死亡,并显示以下错误消息

*glibc检测到* ./test:双重免费或损坏(fasttop):0x0804a168***

#include sys/types.h
#include sys/stat.h
#include fcntl.h
#include string.h
#include stdio.h
#include stdlib.h
#include errno.h
#include time.h

char *SEPERATOR = "|";

void getEvent (char* results);
void getTimeStamp(char* timeStamp, int timeStampSize);
void stringAppend(char* str1, char* str2);

int main (int argc, char *argv[])
{
  int i = 0; 
  while(1)
  { 
    i++;
    printf("%i", i);    

    char* events= realloc(NULL, 1); 
    events[0] = '\0';
    getEvent(events);

    char* timestamp= realloc(NULL, 20);
    timestamp[0] = '\0';
    getTimeStamp(timestamp, 20);

    printf("%s", events);
    printf("timestamp: %s\n", timestamp);

    free(events);
    free(timestamp);
  } 
}

void …
Run Code Online (Sandbox Code Playgroud)

c free corruption realloc segmentation-fault

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