Esempio n. 1
0
        void RunBackgroundThread()
        {
            while (!disposed)
            {
                // Wait for an image to be added or Dispose() to be called
                backgroundThreadEvent.Wait();

                AsyncRestCall asyncRestCall = null;
                lock (this.lockObject)
                {
                    if (RequestQueue.Count > 0)
                    {
                        asyncRestCall = RequestQueue.First.Value;
                        RequestQueue.RemoveFirst();
                    }
                    else
                    {
                        // Queue is empty, so resume waiting
                        backgroundThreadEvent.Reset();
                    }
                }

                if (asyncRestCall != null)
                {
                    asyncRestCall.ProcessThreadsafe();
                }
            }
        }
Esempio n. 2
0
        public T ProcessRequest <T>(YamsterHttpRequest request)
        {
            AsyncRestCall call = CreateRequestObject(request);

            call.ProcessThreadsafe();
            byte[] bytes = call.GetResult();
            return(YamsterApi.ParseJsonResponse <T>(bytes));
        }