示例#1
0
        public MainViewModel()
        {
            _closeCommand = new RelayCommand(_ =>
            {
                _channelMessageProducer.Dispose();
            });

            Channels = new ObservableCollection <ChannelViewModel>();

            _channelMessageProducer = new ChannelMessageWorkerThread();
            _channelMessageProducer.Start(this);
        }
示例#2
0
        public MainViewModel()
        {
            _closeCommand = new RelayCommand(_ =>
            {
                _channelMessageProducer.Dispose();
            });

            _syncChannels = new object();
            Channels      = new ObservableCollection <ChannelViewModel>();
            BindingOperations.EnableCollectionSynchronization(Channels, _syncChannels);

            _channelMessageProducer = new ChannelMessageWorkerThread();
            _channelMessageProducer.Start(this);
        }
示例#3
0
        public bool InitThread(IWorkerThread Thread)
        {
            bool OK = true;
            Task Task;

            if (TaskQueue.Count == 0)
            {
                AddTasks(Params.MaxThreads);
            }
            if (TaskQueue.TryDequeue(out Task))
            {
                Thread.Init(new WorkerThreadParams(Task));
                Thread.Start();
            }
            else
            {
                if (TaskQueue.Count > 0)
                {
                    Logger.UltraLogger.Instance.AddToLog("Worker: Coudn't dequeue Task.", Logger.MsgType.Error);
                    OK = false;
                }
            }
            return(OK);
        }