1 #Region "Microsoft.VisualBasic::3be5c17214536ce52cfb48a329ec834f, Microsoft.VisualBasic.Core\ApplicationServices\Parallel\Threads\LQuerySchedule\Models.vb"
2
3     ' Author:
4     
5     '       asuka (amethyst.asuka@gcmodeller.org)
6     '       xie (genetics@smrucc.org)
7     '       xieguigang (xie.guigang@live.com)
8     
9     ' Copyright (c) 2018 GPL3 Licensed
10     
11     
12     ' GNU GENERAL PUBLIC LICENSE (GPL3)
13     
14     
15     ' This program is free software: you can redistribute it and/or modify
16     ' it under the terms of the GNU General Public License as published by
17     ' the Free Software Foundation, either version 3 of the License, or
18     ' (at your option) any later version.
19     
20     ' This program is distributed in the hope that it will be useful,
21     ' but WITHOUT ANY WARRANTY; without even the implied warranty of
22     ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23     ' GNU General Public License for more details.
24     
25     ' You should have received a copy of the GNU General Public License
26     ' along with this program. If not, see <http://www.gnu.org/licenses/>.
27
28
29
30     ' /********************************************************************************/
31
32     ' Summaries:
33
34     '     Structure TimeoutModel
35     
36     '         FunctionInvoke
37     
38     
39     ' /********************************************************************************/
40
41 #End Region
42
43 Namespace Parallel.Linq
44
45     Public Structure TimeoutModel(Of out)
46
47         Dim timeout As Double
48         Dim task As Func(Of out())
49
50         Public Function Invoke() As out()
51             Dim result As out() = Nothing
52
53             If OperationTimeOut(task, result, timeout) Then
54                 Return Nothing
55             Else
56                 Return result
57             End If
58         End Function
59     End Structure
60 End Namespace