Torna al Thread
public class AccViewModel: ViewModel
{
public Referti Referti { get; set; }
public Referto _selectedReferto = null;
//private BackgroundWorker bw = new BackgroundWorker();
//public BackgroundWorker BackGroundWorker
//{
// get { return bw; }
// set { bw = value; }
//}
public Referto SelectedReferto
{
get { return _selectedReferto; }
set
{
_selectedReferto = value;
NotifyPropertyChanged("SelectedReferto");
}
}
private static System.Windows.Threading.Dispatcher _dispatcher = null;
public static System.Windows.Threading.Dispatcher Dispatchet
{
get { return _dispatcher; }
set { _dispatcher = value; }
}
private delegate void Datadelegate();
System.Threading.Thread tx;
public delegate void updateData();
updateData d;
public AccViewModel()
{
//Codice per il BAckGroundWorker
//bw.WorkerReportsProgress = true;
//bw.WorkerSupportsCancellation = true;
//bw.DoWork += new DoWorkEventHandler(bw_DoWork);
//bw.ProgressChanged += new ProgressChangedEventHandler(bw_ProgressChanged);
//bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
Referti = new Referti();
SelectedReferto = null;
//Semplice
//RetrieveData();
//Thread
//ThreadStart start = () => Dispatchet.BeginInvoke(DispatcherPriority.Normal,
// new Action(RetrieveData));
//new Thread(start).Start();
//altro sistema
d = new updateData(RetrieveData);
tx = new System.Threading.Thread(RetrieveDataThread);
tx.Start();
//bw.RunWorkerAsync();
//Action a =
// () => RetrieveData();
//Dispatchet.BeginInvoke(a,new object[]{});
//RetrieveData();
}
//private void bw_DoWork(object sender, DoWorkEventArgs e)
//{
// BackgroundWorker worker = sender as BackgroundWorker;
// System.Windows.Threading.Dispatcher dispatcher = System.Windows.Threading.Dispatcher.CurrentDispatcher;
// Action a =
// () => RetrieveData();
// Dispatchet.BeginInvoke(a, new object[] { });
//}
//private void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
//{
// if ((e.Cancelled == true))
// {
// ;
// }
// else if (!(e.Error == null))
// {
// ;
// }
// else
// {
// ;
// }
//}
//private void bw_ProgressChanged(object sender, ProgressChangedEventArgs e)
//{
//}
private static bool _received = false;
public static bool Received
{
get { return _received; }
}
private void RetrieveDataThread()
{
Dispatchet.BeginInvoke(d, null);
}
private void RetrieveData()
{
if (_received)
{
_received = !_received;
return;
}
_received = !_received;
try
{
//System.Threading.Thread.Sleep(5000);
Referti = Referti.GetReferti(Configuration.DataFolder, Referti);
base.NotifyPropertyChanged("Referti");
} catch (Exception ex)
{
;
}
}
}