src/vs/workbench/api/common/extHostComments.ts/ExtHostCommentThread/constructor
class ExtHostCommentThread:	constructor(
		private _proxy: MainThreadCommentsShape,
		private _commentController: ExtHostCommentController,
		private _id: string | undefined,
		private _uri: vscode.Uri,
		private _range: vscode.Range,
		private _comments: vscode.Comment[],
		extensionId: ExtensionIdentifier
	) {
		this._acceptInputDisposables.value = new DisposableStore();

		if (this._id === undefined) {
			this._id = `${_commentController.id}.${this.handle}`;
		}

		this._proxy.$createCommentThread(
			this._commentController.handle,
			this.handle,
			this._id,
			this._uri,
			extHostTypeConverter.Range.from(this._range),
			extensionId
		);

		this._localDisposables = [];
		this._isDiposed = false;

		this._localDisposables.push(this.onDidUpdateCommentThread(() => {
			this.eventuallyUpdateCommentThread();
		}));

		// set up comments after ctor to batch update events.
		this.comments = _comments;
	}