Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Unable to run a thread without freezing the game

Hello, I'm trying to run a loop inside a thread, but I'm not being able to understand why my game freezes when is running the loop.

I never tried using threads before, so I'm still confused about how this works.

This is my CustomThread.h

 // Fill out your copyright notice in the Description page of Project Settings.
 #pragma once
 #include "CoreMinimal.h"
 #include "Runtime/Core/Public/HAL/Runnable.h"
 class EXPERIMENTS_API CustomThread : public FRunnable
     FRunnableThread* Thread;
     CustomThread(int32 Limit);
     static CustomThread* LoopNumbers(int32 InLimit);
     //~ Begin FRunnable Interface.
     virtual bool Init();
     virtual uint32 Run();
     virtual void Stop();
     virtual void Exit();
     //~ End FRunnable Interface
     bool IsFinished() const
         return (Numbers == Limit) ? true : false;
     int32 Numbers;
     int32 Limit;

This is my CustomThread.cpp

 // Fill out your copyright notice in the Description page of Project Settings.
 #include "Public/CustomThread.h"
 #include "Runtime/Core/Public/HAL/RunnableThread.h"
 #include "Runtime/Core/Public/GenericPlatform/GenericPlatformProcess.h"
 #include "Runtime/Core/Public/HAL/Event.h"
 CustomThread::CustomThread(int32 Limit) :
     Thread = FRunnableThread::Create(this, TEXT("CustomThread"),0,TPri_BelowNormal);
 CustomThread* CustomThread::LoopNumbers(int32 InLimit)
     new CustomThread(InLimit);
     return 0;
 bool CustomThread::Init()
     UE_LOG(LogTemp, Warning, TEXT("Thread STARTED!!"));
     return true;
 uint32 CustomThread::Run()
     while (!IsFinished())
         UE_LOG(LogTemp, Warning, TEXT("%s"), *FString::FromInt(Numbers));
     return 0;
 void CustomThread::Stop()
     UE_LOG(LogTemp, Warning, TEXT("Thread STOP!!"));
 void CustomThread::Exit()
     UE_LOG(LogTemp, Warning, TEXT("Thread EXIT!!"));
     if (Thread)
         delete Thread;
         Thread = NULL;

Thank you!

Product Version: UE 4.20
more ▼

asked Nov 18 '18 at 04:18 PM in C++ Programming

avatar image

23 1 7

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

0 answers: sort voted first
Be the first one to answer this question
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question