データベース ファイル システムを開発しています。Windows サービスであり、.netのファイル システム ウォッチャークラスを使用するマルチディレクトリ ウォッチャーが含まれています。
各ウォッチャークラスを別々のスレッドで実行したい.スレッドは「封印」されているため、.netで拡張できません。私が望むのは、関連するスレッドでウォッチャー クラスのすべてのメソッドを実行することです。どうすればこれを達成できますか?
編集-
以下は私のベースウォッチャークラスです。
 public abstract class WatcherBase
  {
    private IWatchObject _watchObject;
    public WatcherBase() { }
    public WatcherBase(IWatchObject watchObject, bool canPauseAndContinue)
    {
        _watchObject = watchObject;
        CanPauseAndContinue = canPauseAndContinue;
    }
    public bool CanPauseAndContinue { get; set; }
    public IWatchObject ObjectToWatch
    {
        get
        { 
            return _watchObject; 
        }
    }
    public abstract void Start();
    public abstract void Pause();
    public abstract void Continue();
    public abstract void Stop();
}
以下は、WatcherBase クラスから拡張された私のディレクトリ ウォッチャー クラスです。
  namespace RankFs.WatcherService
  {
    public class DirectoryWatcher : WatcherBase
    {
    private WatchDirectory _directoryToWatch;
    private FileSystemWatcher _watcher;
    public DirectoryWatcher(WatchDirectory directory, bool CanPauseAndContinue)
        :base(directory ,CanPauseAndContinue)
    {
        _directoryToWatch = directory;
        _watcher = new FileSystemWatcher(_directoryToWatch.Path);
        _watcher.IncludeSubdirectories = _directoryToWatch.WatchSubDirectories;
        _watcher.Created +=new FileSystemEventHandler(Watcher_Created);
        //_watcher.Changed +=new FileSystemEventHandler(Watcher_Changed);
        _watcher.Deleted +=new FileSystemEventHandler(Watcher_Deleted);
        _watcher.Renamed +=new RenamedEventHandler(Watcher_Renamed);
    }
    public WatchDirectory DirectoryToWatch
    {
        get 
        {
            return _directoryToWatch;
        }
    }
    public override void Start()
    {
        _watcher.EnableRaisingEvents = true;
    }
    public override void Pause()
    {
        _watcher.EnableRaisingEvents = false;
    }
    public override void Continue()
    {
        _watcher.EnableRaisingEvents = true;
    }
    public override void Stop()
    {
        _watcher.EnableRaisingEvents = false;
    }
    private void Watcher_Created(object sender, FileSystemEventArgs e)
    {
       // adds a new file entry to database 
    }
    private void Watcher_Deleted(object sender, FileSystemEventArgs e)
    {
       //updates the database(deleted file)
    }
    private void Watcher_Renamed(object sender, RenamedEventArgs e)
    {
   //updates the database(renamed file)
    }
} }
この時点で立ち往生しています。助けてください。