SampleSmart
1.0.0.0
SampleSmart 사용 방법을 보여 주는 예제 프로젝트입니다.
Toggle main menu visibility
로딩중...
검색중...
일치하는것 없음
MainWindow.xaml.ViewModel.cs
이 파일의 문서화 페이지로 가기
1
using
Dreamine.Logging.Interfaces;
2
using
Dreamine.MVVM.Attributes;
3
using
Dreamine.MVVM.Core;
4
using
Dreamine.MVVM.ViewModels;
5
using
Dreamine.Threading.Interfaces;
6
using
Dreamine.Threading.Models;
7
8
namespace
SampleSmart.Pages
9
{
18
public
partial class
MainWindowViewModel
: ViewModelBase
19
{
28
[DreamineModel]
29
private
MainWindowModel
_model
;
38
[DreamineEvent]
39
private
MainWindowEvent
_event
;
48
public
string
Title
=> Model.Title;
57
public
string
Message
=> Model.Message;
66
[DreamineCommand(
"Event.Ok"
)]
67
private
partial
void
Ok
();
68
77
[DreamineCommand(
"Event.Cancel"
)]
78
private
partial
void
Cancel
();
79
88
[DreamineCommand(
"Event.Minimize"
)]
89
private
partial
void
Minimize
();
90
99
[DreamineCommand(
"Event.Maximize"
)]
100
private
partial
void
Maximize
();
101
110
[DreamineCommand(
"Event.Close"
)]
111
private
partial
void
Close
();
112
121
[DreamineCommand(
"Event.SubPage"
)]
122
private
partial
void
SubPage
();
123
132
[DreamineCommand(
"Event.SubPage2"
)]
133
private
partial
void
SubPage2
();
134
143
[DreamineCommand(
"Event.LogPage"
)]
144
private
partial
void
LogPage
();
145
154
[DreamineCommand(
"Event.ThreadPage"
)]
155
private
partial
void
ThreadPage
();
156
165
[DreamineCommand(
"Event.CommunicationPage"
)]
166
private
partial
void
CommunicationPage
();
167
176
[DreamineCommand(
"Event.PlcPage"
)]
177
private
partial
void
PlcPage
();
178
187
[DreamineCommand(
"Event.IoPage"
)]
188
private
partial
void
IoPage
();
189
198
[DreamineCommand(
"Event.DatabasePage"
)]
199
private
partial
void
DatabasePage
();
200
209
[DreamineCommand(
"Event.SubWindow"
)]
210
private
partial
void
SubWindow
();
211
220
[DreamineCommand(
"Event.NoticeWindow"
)]
221
private
partial
void
NoticeWindow
();
222
231
[DreamineCommand(
"Event.MonitorWindow"
)]
232
private
partial
void
MonitorWindow
();
233
242
[DreamineCommand(
"Event.SettingWindow"
)]
243
private
partial
void
SettingWindow
();
244
253
private
const
string
SampleMonitoringJobName
=
"Sample-MonitoringJob"
;
254
263
private
readonly IDreamineLogger
_logger
;
272
private
readonly IDreamineThreadManager
_threadManager
;
273
282
private
bool
_isInitialized
;
291
private
bool
_isSampleMonitoringJobRegistered
;
300
private
int
_sampleMonitoringTickCount
;
301
326
public
MainWindowViewModel
(IDreamineLogger logger, IDreamineThreadManager threadManager)
327
{
328
_model
=
null
!;
329
_event
=
null
!;
330
_ =
_model
;
331
_ =
_event
;
332
333
_logger
= logger;
334
_threadManager
= threadManager;
335
336
Initialize
();
337
}
338
347
public
void
Initialize
()
348
{
349
if
(
_isInitialized
)
350
{
351
return
;
352
}
353
354
_isInitialized
=
true
;
355
356
RegisterSampleMonitoringJob
();
357
}
358
367
private
void
RegisterSampleMonitoringJob
()
368
{
369
if
(
_isSampleMonitoringJobRegistered
)
370
{
371
_logger
.Warning($
"{SampleMonitoringJobName} is already registered."
);
372
return
;
373
}
374
375
_isSampleMonitoringJobRegistered
=
true
;
376
377
_threadManager
.Register(
378
new
DreamineThreadOptions
379
{
380
Name =
SampleMonitoringJobName
,
381
Priority = DreamineThreadPriority.Normal,
382
IntervalMs = 10,
383
CoreMode = DreamineThreadCoreMode.Auto,
384
AutoThreadsPerCore = 2,
385
OverflowPollingIntervalMs = 20,
386
AutoStart =
true
,
387
UseHighPrecisionTimer =
true
,
388
YieldWhenIntervalIsZero =
true
,
389
UseAdaptiveCpuDelay =
true
390
},
391
ExecuteSampleMonitoringJobAsync
);
392
393
_logger
.Info($
"{SampleMonitoringJobName} registered from MainWindowViewModel."
);
394
}
395
420
private
ValueTask
ExecuteSampleMonitoringJobAsync
(CancellationToken token)
421
{
422
if
(token.IsCancellationRequested)
423
{
424
return
ValueTask.CompletedTask;
425
}
426
427
_sampleMonitoringTickCount
++;
428
429
if
(
_sampleMonitoringTickCount
% 100 == 0)
430
{
431
_logger
.Debug(
432
$
"Sample monitoring thread tick. Count={_sampleMonitoringTickCount}"
);
433
}
434
435
return
ValueTask.CompletedTask;
436
}
437
}
438
}
SampleSmart.Pages
Definition
MainWindow.xaml.cs:13
SampleSmart.Pages.MainWindowEvent
Definition
MainWindow.xaml.Event.cs:18
SampleSmart.Pages.MainWindowModel
Definition
MainWindow.xaml.Model.cs:14
SampleSmart.Pages.MainWindowViewModel.NoticeWindow
partial void NoticeWindow()
SampleSmart.Pages.MainWindowViewModel._isSampleMonitoringJobRegistered
bool _isSampleMonitoringJobRegistered
Definition
MainWindow.xaml.ViewModel.cs:291
SampleSmart.Pages.MainWindowViewModel.Title
string Title
Definition
MainWindow.xaml.ViewModel.cs:48
SampleSmart.Pages.MainWindowViewModel.Ok
partial void Ok()
SampleSmart.Pages.MainWindowViewModel.Close
partial void Close()
SampleSmart.Pages.MainWindowViewModel._sampleMonitoringTickCount
int _sampleMonitoringTickCount
Definition
MainWindow.xaml.ViewModel.cs:300
SampleSmart.Pages.MainWindowViewModel._threadManager
readonly IDreamineThreadManager _threadManager
Definition
MainWindow.xaml.ViewModel.cs:272
SampleSmart.Pages.MainWindowViewModel.MonitorWindow
partial void MonitorWindow()
SampleSmart.Pages.MainWindowViewModel.SubWindow
partial void SubWindow()
SampleSmart.Pages.MainWindowViewModel.SampleMonitoringJobName
const string SampleMonitoringJobName
Definition
MainWindow.xaml.ViewModel.cs:253
SampleSmart.Pages.MainWindowViewModel.SubPage
partial void SubPage()
SampleSmart.Pages.MainWindowViewModel.Initialize
void Initialize()
Definition
MainWindow.xaml.ViewModel.cs:347
SampleSmart.Pages.MainWindowViewModel._isInitialized
bool _isInitialized
Definition
MainWindow.xaml.ViewModel.cs:282
SampleSmart.Pages.MainWindowViewModel.PlcPage
partial void PlcPage()
SampleSmart.Pages.MainWindowViewModel.Cancel
partial void Cancel()
SampleSmart.Pages.MainWindowViewModel.IoPage
partial void IoPage()
SampleSmart.Pages.MainWindowViewModel.RegisterSampleMonitoringJob
void RegisterSampleMonitoringJob()
Definition
MainWindow.xaml.ViewModel.cs:367
SampleSmart.Pages.MainWindowViewModel.LogPage
partial void LogPage()
SampleSmart.Pages.MainWindowViewModel._logger
readonly IDreamineLogger _logger
Definition
MainWindow.xaml.ViewModel.cs:263
SampleSmart.Pages.MainWindowViewModel.Minimize
partial void Minimize()
SampleSmart.Pages.MainWindowViewModel.ExecuteSampleMonitoringJobAsync
ValueTask ExecuteSampleMonitoringJobAsync(CancellationToken token)
Definition
MainWindow.xaml.ViewModel.cs:420
SampleSmart.Pages.MainWindowViewModel.DatabasePage
partial void DatabasePage()
SampleSmart.Pages.MainWindowViewModel.MainWindowViewModel
MainWindowViewModel(IDreamineLogger logger, IDreamineThreadManager threadManager)
Definition
MainWindow.xaml.ViewModel.cs:326
SampleSmart.Pages.MainWindowViewModel.Message
string Message
Definition
MainWindow.xaml.ViewModel.cs:57
SampleSmart.Pages.MainWindowViewModel.ThreadPage
partial void ThreadPage()
SampleSmart.Pages.MainWindowViewModel.SubPage2
partial void SubPage2()
SampleSmart.Pages.MainWindowViewModel.SettingWindow
partial void SettingWindow()
SampleSmart.Pages.MainWindowViewModel._model
MainWindowModel _model
Definition
MainWindow.xaml.ViewModel.cs:29
SampleSmart.Pages.MainWindowViewModel._event
MainWindowEvent _event
Definition
MainWindow.xaml.ViewModel.cs:39
SampleSmart.Pages.MainWindowViewModel.Maximize
partial void Maximize()
SampleSmart.Pages.MainWindowViewModel.CommunicationPage
partial void CommunicationPage()
Pages
MainWindow.xaml.ViewModel.cs
다음에 의해 생성됨 :
1.17.0