Example #1
0
        public Page()
        {
            InitializeComponent();
            MySynchronizationContext ctx = new MySynchronizationContext(this.Dispatcher);

            DataBinder.AddCompiledBinding(tDefault, "Tool.AssemblyPath", t1, "Tool.DefaultPath", ctx);
            DataBinder.AddCompiledBinding(tDefault, "Tool.AssemblyPath", t2, "Tool.DefaultPath", ctx);
        }
Example #2
0
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            //test binding on another thread
            ToolConfig tc = new ToolConfig();
            MySynchronizationContext ctx = new MySynchronizationContext(this.Dispatcher);

            DataBinder.AddCompiledBinding(tc, "DefaultPath", tDefault, "Tool.AssemblyPath", ctx);

            ThreadPool.QueueUserWorkItem(delegate
            {
                tc.DefaultPath = "my test default";
            });
        }
Example #3
0
        static void Main(string[] args)
        {
            Logger.Info("Hello World!");

            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
            TaskScheduler.UnobservedTaskException      += TaskScheduler_UnobservedTaskException;

            CustomTaskScheduler      scheduler = new CustomTaskScheduler();
            MySynchronizationContext context   = new MySynchronizationContext();

            //SynchronizationContext.SetSynchronizationContext(context);

            //Task.Factory.StartNew(Hello, "A:", new CancellationToken(), TaskCreationOptions.None, scheduler);
            //Task.Factory.StartNew(Hello, "B:", new CancellationToken(), TaskCreationOptions.None, scheduler);
            //Task.Factory.StartNew(Hello, "C:", new CancellationToken(), TaskCreationOptions.None, scheduler);

            Task.Factory.StartNew(Hello, "PoolA:", new CancellationToken(), TaskCreationOptions.None, TaskScheduler.Default);
            //Task.Factory.StartNew(Hello, "PoolB:", new CancellationToken(), TaskCreationOptions.None, TaskScheduler.Default);
            //Task.Factory.StartNew(Hello, "PoolC:", new CancellationToken(), TaskCreationOptions.None, TaskScheduler.Default);

            //Hello("E");

            MyTask.Run(HelloMyTask, "I");
            //MyTask.Run(HelloMyTask2, "有返回值:");

            Log("Main");

            while (Console.KeyAvailable == false)
            {
                GC.Collect();
                GC.WaitForPendingFinalizers();
                scheduler.Update();
                //myTaskScheduler.Update();
                s_WaitOneFrameTasks.Update();
                //context.Update();
            }

            ref StructA a = ref alist[0];
Example #4
0
 public MainWindow()
 {
     InitializeComponent();
     _synchronizationContext = new MySynchronizationContext(SynchronizationContext.Current);
 }