コード例 #1
0
ファイル: SpinLockPerf.cs プロジェクト: Skyish/isel-pc-1516-1
	private static void EvalPerf(Synch synch, int numThreads) {
		ManualResetEvent startEvent = new ManualResetEvent(false);
		int endTime = 0;
		int totalOps = 0;
		
		Thread[] threads = new Thread[numThreads];
		for (int n = 0; n < numThreads; ++n) {
			threads[n] = new Thread(() => {
				int numOps = 0; 
				startEvent.WaitOne();
				
				do {
					for (int i = 0; i < LOCKS_PER_LOOP; ++i) {
						synch.Synchronize(() => {
							// Busy variant:
                     // Thread.Yield();
						});
					}
					numOps += LOCKS_PER_LOOP;
				} while (Environment.TickCount < endTime);
				
				Interlocked.Add(ref totalOps, numOps);
			});
			threads[n].Start();
		}
		
		endTime = Environment.TickCount + MS_PER_TEST;
		startEvent.Set();
		
		foreach (Thread t in threads) {
			t.Join();
		}
		Console.WriteLine("[{0}] {1}", numThreads, totalOps);
	}
コード例 #2
0
ファイル: Inventory.cs プロジェクト: sky-tc/U8
 /// <summary>
 /// 删除
 /// </summary>
 /// <returns></returns>
 public override object Delete()
 {
     if (Synch.Equals("UFOper"))
     {
         sqlOper = new UFOper(oraLinkName, ufConnStr, ufTableName, ufPriKey, oracleTableName, oraclePriKey, l, lst);
         if (bNoCase)
         {
             sqlOper.Delete();  //清除旧记录
         }
         if (bSaveOper)
         {
             return(this.Insert());
         }
         else
         {
             return(1);
         }
     }
     else if (Synch.Equals("LinkOper"))
     {
         sqlOper = new LinkOper(oraLinkName, ufConnStr, ufTableName, ufPriKey, oracleTableName, oraclePriKey, l, lst);
         return(sqlOper.Update());
     }
     else
     {
         sqlOper = new OracleOper(oraConnStr, oracleTableName, oraclePriKey, l, lst);
         return(sqlOper.Update());
     }
 }
コード例 #3
0
ファイル: CatalogWindow.cs プロジェクト: carlhuth/GenXSource
        override public void  Run()
        {
            try
            {
                long pos = 0, nextpos;
                while (!zap)
                {
                    lock (mutex)
                    {
                        nextpos = MoleculeStream.FindNextPosition(istr, pos);
                    }
                    if (nextpos < 0)
                    {
                        break;
                    }

                    filepos.Add(pos);
                    pos = nextpos;

                    // inform the main window that is has work to do!
                    //UPGRADE_ISSUE: Method 'java.awt.EventQueue.invokeLater' was not converted. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1000_javaawtEventQueue'"
                    //EventQueue.invokeLater(new AnonymousClassRunnable(this));
                    Synch synchDelegate = new Synch(wnd.Synchronize);
                    synchDelegate(filepos.Count);
                }
            }
            catch (System.IO.IOException e)
            {
                //UPGRADE_TODO: The equivalent in .NET for method 'java.lang.Throwable.toString' may return a different value. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1043'"
                SupportClass.OptionPaneSupport.ShowMessageDialog(null, e.ToString(), "Catalog Load Failed", (int)System.Windows.Forms.MessageBoxIcon.Error);
                SupportClass.WriteStackTrace(e, Console.Error);
            }
        }
コード例 #4
0
ファイル: SpinLockPerf.cs プロジェクト: Skyish/isel-pc-1516-1
	public static void Main() {
		Synch[] synchs = new Synch[] {
			new MutexSynch(),
			new MonitorSynch(),
			new BasicSpinLockSynch()
		};
		
		foreach (Synch synch in synchs) {
			EvalPerf(synch);
		}
	}
コード例 #5
0
ファイル: SpinLockPerf.cs プロジェクト: Skyish/isel-pc-1516-1
	private static void EvalPerf(Synch synch) {
		Console.WriteLine("################");
		Console.WriteLine("# {0}", synch.GetType().Name);
		Console.WriteLine();

		for (int nt = 1; nt <= Environment.ProcessorCount * 2; ++nt) {
			EvalPerf(synch, nt);
		}
		
		Console.WriteLine();
	}
コード例 #6
0
    public static void synch1_values_test()
    //****************************************************************************80
    //
    //  Purpose:
    //
    //    SYNCH1_VALUES_TEST tests SYNCH1_VALUES.
    //
    //  Licensing:
    //
    //    This code is distributed under the GNU LGPL license.
    //
    //  Modified:
    //
    //    08 February 2007
    //
    //  Author:
    //
    //    John Burkardt
    //
    {
        double fx = 0;
        double x  = 0;

        Console.WriteLine("");
        Console.WriteLine("SYNCH1_VALUES_TEST:");
        Console.WriteLine("  SYNCH1_VALUES stores values of ");
        Console.WriteLine("  the Synchrotron function of order 1.");
        Console.WriteLine("");
        Console.WriteLine("                X                     FX");
        Console.WriteLine("");
        int n_data = 0;

        for (;;)
        {
            Synch.synch1_values(ref n_data, ref x, ref fx);
            if (n_data == 0)
            {
                break;
            }

            Console.WriteLine("  "
                              + x.ToString("0.################").PadLeft(24) + "  "
                              + fx.ToString("0.################").PadLeft(24) + "");
        }
    }
コード例 #7
0
ファイル: Bom_opcomponent.cs プロジェクト: sky-tc/U8
 public override StringBuilder CreateDeleteString()
 {
     if (Synch.Equals("UFOper"))
     {
         string sql = " DELETE FROM " + oracleTableName + " WHERE  " + oracleTableName + ".id in( select id from MES_CQ_bom_bom with(nolock) where  bomid ='" + bomId + "') ";
         return(new StringBuilder(sql));
     }
     else if (Synch.Equals("LinkOper"))
     {
         sqlOper = new U8.Interface.Bus.Event.SyncAdapter.Biz.LinkOper(oraLinkName, ufConnStr, ufTableName, ufPriKey, oracleTableName, oraclePriKey, l, lst);
         return(sqlOper.CreateDeleteString());
     }
     else
     {
         sqlOper = new U8.Interface.Bus.Event.SyncAdapter.Biz.OracleOper(oraConnStr, oracleTableName, oraclePriKey, l, lst);
         return(sqlOper.CreateDeleteString());
     }
 }
コード例 #8
0
ファイル: Mom_orderdetail.cs プロジェクト: sky-tc/U8
 public override StringBuilder CreateDeleteString()
 {
     if (Synch.Equals("UFOper"))
     {
         string sql = "DELETE FROM " + oracleTableName + " WHERE  " + oracleTableName + ".MoCode in( select h.mocode from mom_orderdetail d with(nolock) inner join mom_order h with(nolock) on h.moid = d.moid where  d.moid =" + Convert.ToString(_moid) + " and d.modid =" + Convert.ToString(_modid) + ") ";
         return(new StringBuilder(sql));
     }
     else if (Synch.Equals("LinkOper"))
     {
         sqlOper = new LinkOper(oraLinkName, ufConnStr, ufTableName, ufPriKey, oracleTableName, oraclePriKey, l, lst);
         return(sqlOper.CreateDeleteString());
     }
     else
     {
         sqlOper = new OracleOper(oraConnStr, oracleTableName, oraclePriKey, l, lst);
         return(sqlOper.CreateDeleteString());
     }
 }
コード例 #9
0
ファイル: PU_ArrivalVouchs.cs プロジェクト: sky-tc/U8
 public override StringBuilder CreateDeleteString()
 {
     if (Synch.Equals("UFOper"))
     {
         string sql = " DELETE FROM " + oracleTableName + " WHERE  " + oracleTableName + ".dhcode ='" + _ccode + "'  ";
         return(new StringBuilder(sql));
     }
     else if (Synch.Equals("LinkOper"))
     {
         sqlOper = new U8.Interface.Bus.Event.SyncAdapter.Biz.LinkOper(oraLinkName, ufConnStr, ufTableName, ufPriKey, oracleTableName, oraclePriKey, l, lst);
         return(sqlOper.CreateDeleteString());
     }
     else
     {
         sqlOper = new U8.Interface.Bus.Event.SyncAdapter.Biz.OracleOper(oraConnStr, oracleTableName, oraclePriKey, l, lst);
         return(sqlOper.CreateDeleteString());
     }
 }
コード例 #10
0
ファイル: AssemVouchs.cs プロジェクト: sky-tc/U8
 public override StringBuilder CreateDeleteString()
 {
     if (Synch.Equals("UFOper"))
     {
         string sql = " DELETE FROM " + oracleTableName + " WHERE  " + oracleTableName + ".cAVDID in( select  autoid from " + ufTableName + " sb with(nolock) INNER JOIN AssemVouch sh WITH(NOLOCK) ON sh.id = sb.id where sh.cVouchType = '13' AND sh.cAVCode ='" + _cAVCode + "') ";
         return(new StringBuilder(sql));
     }
     else if (Synch.Equals("LinkOper"))
     {
         sqlOper = new U8.Interface.Bus.Event.SyncAdapter.Biz.LinkOper(oraLinkName, ufConnStr, ufTableName, ufPriKey, oracleTableName, oraclePriKey, l, lst);
         return(sqlOper.CreateDeleteString());
     }
     else
     {
         sqlOper = new U8.Interface.Bus.Event.SyncAdapter.Biz.OracleOper(oraConnStr, oracleTableName, oraclePriKey, l, lst);
         return(sqlOper.CreateDeleteString());
     }
 }
コード例 #11
0
 public override StringBuilder CreateDeleteString()
 {
     if (Synch.Equals("UFOper"))
     {
         string sql = "DELETE FROM " + oracleTableName + " WHERE  " + oraclePriKey + "=" + Convert.ToString(_PRoutingId) + " ";
         return(new StringBuilder(sql));
     }
     else if (Synch.Equals("LinkOper"))
     {
         sqlOper = new LinkOper(oraLinkName, ufConnStr, ufTableName, ufPriKey, oracleTableName, oraclePriKey, l, lst);
         return(sqlOper.CreateDeleteString());
     }
     else
     {
         sqlOper = new OracleOper(oraConnStr, oracleTableName, oraclePriKey, l, lst);
         return(sqlOper.CreateDeleteString());
     }
 }
コード例 #12
0
		override public void  Run()
		{
			try
			{
				long pos = 0, nextpos;
				while (!zap)
				{
					lock (mutex)
					{
						nextpos = MoleculeStream.FindNextPosition(istr, pos);
					}
					if (nextpos < 0)
						break;
					
					filepos.Add(pos);
					pos = nextpos;
					
					// inform the main window that is has work to do!
					//UPGRADE_ISSUE: Method 'java.awt.EventQueue.invokeLater' was not converted. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1000_javaawtEventQueue'"
                    //EventQueue.invokeLater(new AnonymousClassRunnable(this));
                    Synch synchDelegate = new Synch(wnd.Synchronize);
                    synchDelegate(filepos.Count); 
				}
			}
			catch (System.IO.IOException e)
			{
				//UPGRADE_TODO: The equivalent in .NET for method 'java.lang.Throwable.toString' may return a different value. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1043'"
				SupportClass.OptionPaneSupport.ShowMessageDialog(null, e.ToString(), "Catalog Load Failed", (int) System.Windows.Forms.MessageBoxIcon.Error);
				SupportClass.WriteStackTrace(e, Console.Error);
			}
		}