/// <summary>
 /// Called when the card is inserted.
 ///
 /// WARNING: This method is not safe if multiple event handler are plugged to the
 /// event. The same reference would be used by different threads and that could be
 /// unsafe.
 ///
 /// A solution is to limit the number of event handle to one by overloading the
 /// event += and -=
 /// </summary>
 /// <param name="reader"></param>
 private void RaiseCardInserted(string reader)
 {
     if (CardInserted != null)
     {
         card = new CardNative();
         card.Connect(reader, SHARE.Shared, PROTOCOL.T0orT1);
         CardInserted(this, new CardInsertedArgs(reader, card));
     }
 }