我不理解erorr消息以及如何解决它以及它为什么会发生。 这是代码:
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”类型不能用作 在泛型类型或方法中输入参数'TEventArgs' 'System.EventHandler'。没有隐含的参考 从'GatherLinks.BackgroundWebCrawling'转换为 'System.EventArgs'。
答案 0 :(得分:10)
EventHandler<T>
签名(至少最初是)用于args
(在公共sender
/ args
模式中)是{{的某些子类的方案。 1}}。因此,存在EventArgs
约束(编辑 - 如ByteBlast注释:直到.NET 4.5,其中constraint is removed)
where T : EventArgs
不 BackgroundWebCrawling
。除此之外,没有必要将其作为EventArgs
发送,因为您可能已将其发送(args
)为this
。
如果您没有要发送的有趣参数,只需使用非通用sender
,然后发送EventHandler
。