Was inheriting the juce::ThreadWithProgressWindow and creating an thread which basically used for my application to sync with device and while the time of syncing i was trying to display the progress window which consists status message and the progress

here at the first run it is coming properly but when i sync it for the second type the status message and the progress is not updating the below the basic implementation i tried but i faced the same result

main component →

if (syncthread)
syncthread.reset();
syncthread = std::make_shared(app, device);
syncthread->runThread(juce::thread::Priority::highest);

bool forcedExit = syncThreadClosing();

—> this is the run function called in this setting status,progress happens

	void run() override {

		while (!threadShouldExit())
		{
			wait(100);
			int iStart = 0;

			for (; iStart < 100; ++iStart)
			{
				setStatusMessage("Set message " + juce::String(iStart));
				for (int i = 0; i < 10; ++i)
				{
					DBG("Hello");
				}
				setProgress((double)iStart / 100);
				wait(50);
			}

			if (iStart >= 100)
				break;
		}


		DBG("---> thread ended  ");
	} //run