Utils

Mix two hash code to produce a new hash code
Code

消影:
消影

忘记加的WM_SETREDRAW值了:
 public const int  WM_SETREDRAW                    = 0x000B;

抓起Dump文件:

Code

详细可见:如何让程序抓到dump文件,MiniDumpWriteDump 一文

Timer (摘自 《CLR Via C#》) 

Timer
 // This class is useful for doing operation performance timing
 internal sealed class OperationTimer : IDisposable
 {
     
private Int64 m_startTime;
     
private String m_text;
     
private Int32 m_collectionCount;
     
public OperationTimer(String text)
     {
         PrepareForOperation();
         m_text 
= text;
         m_collectionCount 
= GC.CollectionCount(0);
         
// This should be the last statement in this
         
// method to keep timing as accurate as possible
         m_startTime = Stopwatch.GetTimestamp();
     }
     
public void Dispose()
     {
         Console.WriteLine(
"{0,6:###.00} seconds (GCs={1,3}) {2}", (Stopwatch.GetTimestamp() - m_startTime) / (Double)Stopwatch.Frequency,
                                                                    GC.CollectionCount(
0- m_collectionCount, m_text);
     }
     
private static void PrepareForOperation()
     {
         GC.Collect();
         GC.WaitForPendingFinalizers();
         GC.Collect();
     }
 }
原文地址:https://www.cnblogs.com/anders06/p/965352.html