Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6563351
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 25, 20262026-05-25T13:49:16+00:00 2026-05-25T13:49:16+00:00

Consider the following app architecture: UI (View) Thread creates a ViewModel. ViewModels constructor requests

  • 0

Consider the following app architecture:

UI (View) Thread creates a ViewModel.

ViewModels constructor requests business logic object (provider) to start retrieving data from storage.

It does it by subscribing to DataRecieved event of the provider and calls the StartRetrievingData() method.

Provider creates a background thread in the StartRetrievingData() method body, loops through the obtained data and in the loop body raises DataRecieved event, passing actual data object as a custom EventArgs public field.

A ViewModel method, that is linked to a DataRecieved event then updates the observableCollection, that UI element is bound to.

Questions are:

Is everything ok with such architecture as MVVM implemntation?

At what point should I do the thread synchronization, that is calling Deployment.Current.Dispatcher to dispatch the call originated from a background thread to update the UI?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-25T13:49:16+00:00Added an answer on May 25, 2026 at 1:49 pm

    I would, personally, handle all synchronization requirements in your ViewModel.

    If the View is constructing the ViewModel, the TPL provides a nice mechanism for this:

    TaskFactory uiFactory;
    
    public YourViewModel()
    {
         // Since the View handles the construction here, you'll get the proper sync. context
         uiFactory = new TaskFactory(TaskScheduler.FromCurrentSynchronizationContext());
    }
    
    // In your data received event:
    private items_DataReceived(object sender, EventArgs e)
    {
        uiFactory.StartNew( () =>
        {
            // update ObservableCollection here... this will happen on the UI thread
        });
    }
    

    The nice thing with this approach is that you don’t have to pull in the WPF related types (such as Dispatcher) into your ViewModel layer, and it works very cleanly.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Consider the Following object model (->> indicates collection): Customer->Orders Orders->>OrderLineItems->Product{Price} The app is focused
Consider the following situation: - Suppose my app allows users to create the states
Consider the following case: A web server is running a .NET app with <sessionState
I have an app that's about presenting fictional simplified cities. Please consider the following
Please consider the following code (also in this fiddle ): var viewModel = {
Consider the following in .NET 3.5 (using the Bin\Net35\Facebook*.dll assemblies): using Facebook; var app
Based on: MVC Html.CheckBox and form submit issue Let's consider following example. View: <%
Consider the following app delegate entry point: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window
Okay, consider the following: A app/views/pages/index.html.erb , consisting of: <div id='content'> <%= link_to 'Test',
Consider the following image: My app first finds all the blue pixels and also

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.