public void UpdateThread()
        {
            try
            {
                PodcastFeedInfo tmp_feed = null;

                while (true)
                {
                    lock (update_sync)
                    {
                        if (currentFeed == totalFeeds)
                        {
                            return;
                        }
                        if (userEvent.IsCancelRequested)
                        {
                            return;
                        }
                        else
                        {
                            tmp_feed = update_queue [currentFeed++] as PodcastFeedInfo;
                        }
                    }

                    try
                    {
                        UpdateUserEvent(String.Format(
                                            Catalog.GetString("Updating \"{0}\""), tmp_feed.Title
                                            ));

                        if (tmp_feed.IsSubscribed)
                        {
                            tmp_feed.Update();
                        }
                    }
                    catch {
                    } finally {
                        userEvent.Progress = (double)(currentFeed) / (double)totalFeeds;
                    }
                }
            }
            catch {
            } finally
            {
                EndUpdate();
            }
        }