Is the following assignment code thread safe?
public Stream Stream { get { return stream ?? (stream = new NetworkStream(Socket)); } set