make sure to UIImage::setImage in main thread