2

我不明白错误消息以及如何修复它以及它为什么会发生。这是代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ComponentModel;
using System.Threading;

namespace GatherLinks
{
    class BackgroundWebCrawling
    {
        public string f;
        int counter = 0;
        List<string> WebSitesToCrawl;
        int MaxSimultaneousThreads;
        BackgroundWorker mainBackGroundWorker;
        BackgroundWorker secondryBackGroundWorker;
        WebcrawlerConfiguration webcrawlerCFG;
        List<WebCrawler> webcrawlers;
        int maxlevels;
        public event EventHandler<BackgroundWebCrawling> ProgressEvent;

错误出现在 ProgressEvent 上

错误 1 ​​类型“GatherLinks.BackgroundWebCrawling”不能用作泛型类型或方法“System.EventHandler”中的类型参数“TEventArgs”。没有从“GatherLinks.BackgroundWebCrawling”到“System.EventArgs”的隐式引用转换。

4

1 回答 1

10

签名(EventHandler<T>至少,最初)用于args(在常见sender/args模式中)是EventArgs. 因此,存在一个where T : EventArgs约束(编辑 - 正如 ByteBlast 所指出的:直到 .NET 4.5,约束被删除

BackgroundWebCrawling不是一个。_ EventArgs除此之外,将它作为 发送是没有意义的args,因为您可能已经将它 ( )this作为sender

如果您没有要发送的有趣参数,只需使用非泛型EventHandler和发送即可EventArgs.Empty

于 2013-07-01T06:49:24.770 回答