C++ destroy UStaticMesh?

For A, seems the reason why it crashes often is that the static mesh is destoryed before it is removed from MyComponent.
It could work if:

 if(MyStaticMesh->IsValidLowLevel())
 {
      MyComponent->SetStaticMesh(0);
      MyStaticMesh->ConditionalBeginDestroy();
 }