BrutileArcGIS.Lib.MultipleThreadResetEvent.Dispose C# (CSharp) Method

Dispose() public method

释放对象占用的空间
public Dispose ( ) : void
return void
        public void Dispose()
        {
            ((IDisposable)_done).Dispose();
        }

Usage Example

        private void DownloadTiles(object args)
        {
            var downloadFinished = args as ManualResetEvent;

            // Loop through the tiles, and filter tiles that are already on disk.
            var downloadTiles = new List<TileInfo>();
            for (var i = 0; i < _tiles.Count(); i++)
            {
                if (!_fileCache.Exists(_tiles[i].Index))
                {
                    downloadTiles.Add(_tiles[i]);
                }
                else
                {
                    // Read tiles from disk
                    var name = _fileCache.GetFileName(_tiles[i].Index);

                    // Determine age of tile...
                    var fi = new FileInfo(name);
                    if ((DateTime.Now - fi.LastWriteTime).Days <= _tileTimeOut) continue;
                    File.Delete(name);
                    downloadTiles.Add(_tiles[i]);
                }
            }

            if (downloadTiles.Count > 0)
            {
                int count = 1;
                int allCount = 100;
                while ((count - 1) * allCount < downloadTiles.Count)
                {
                    try
                    {
                        int temp = allCount;
                        if (count*allCount > downloadTiles.Count)
                            temp = downloadTiles.Count - (count - 1)*allCount;
                        var doneEvents = new MultipleThreadResetEvent(temp);
                        ThreadPool.SetMaxThreads(25, 25);
                        for (int i = 0; i < temp; i++)
                        {
                            TileInfo t = downloadTiles[(count - 1)*allCount + i];
                            object o = new object[] {t, doneEvents};
                            ThreadPool.QueueUserWorkItem(DownloadTile, o);
                        }
                        doneEvents.WaitAll();
                        doneEvents.Dispose();
                        //Thread.Sleep(10);
                        count++;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("下载异常:" + ex.Message);
                    }
                }
            }

            if (downloadFinished != null) downloadFinished.Set();
        }
All Usage Examples Of BrutileArcGIS.Lib.MultipleThreadResetEvent::Dispose