コード例 #1
0
        private void ThreadProc()
        {
            while (!disposing)
            {
                if (inputProvider != null)
                {
                    ContactInfo[] contacts = inputProvider.GetContacts();
                    legacySupportLogic.Process(contacts);

                    if (contacts.Length > 0)
                    {
                        HashSet <IMultitouchServiceCallback> .Enumerator enumerator = callbacks.GetEnumerator();
                        List <IMultitouchServiceCallback> failed = new List <IMultitouchServiceCallback>();
                        while (enumerator.MoveNext())
                        {
                            try
                            {
                                enumerator.Current.ProcessContact(contacts);
                            }
                            catch (Exception)
                            {
                                failed.Add(enumerator.Current);
                            }
                        }
                        foreach (IMultitouchServiceCallback failedCallback in failed)
                        {
                            callbacks.Remove(failedCallback);
                        }
                    }
                }
            }
        }